当前位置: 首页 > news >正文

如何做体育彩票网站深圳英文站seo

如何做体育彩票网站,深圳英文站seo,西安网站建设动力无限,网站开发哈尔滨网站开发公司继上一章: CSDN 本次需要做的是进行有效ip的验证! 我们知道,从网页上爬取上千上万个ip之后,因为是免费的代理,所以,对这上千上万个ip进行验证有效性就需要考虑效率上的问题了; 而验证ip有效性的唯一办法,就是通过对网络发起请求;如果state200,就是有效,否则就是无效; 而上…

继上一章:

CSDN

本次需要做的是进行有效ip的验证!

我们知道,从网页上爬取上千上万个ip之后,因为是免费的代理,所以,对这上千上万个ip进行验证有效性就需要考虑效率上的问题了;

而验证ip有效性的唯一办法,就是通过对网络发起请求;如果state=200,就是有效,否则就是无效;

而上千万次的发起请求,如果通过多线程去做,势必会增加服务器的压力;

因此,只能通过异步去验证IP是否有效:

async def check_ip(session, proxy):"""...略去其它注释,同时函数的docstring也要更新..."""proxy_url = f"http://{proxy['ip']}:{proxy['port']}"try:async with session.get(url="http://httpbin.org/ip", timeout=1.5, proxy=proxy_url) as response:# 返回原始代理信息和有效性状态return proxy, response.status == 200except (aiohttp.ClientError, asyncio.TimeoutError):# 返回原始代理信息和无效状态return proxy, Falseasync def check_ip_main(proxies):"""检查IP有效性并返回所有有效的IP列表"""async with aiohttp.ClientSession() as session:tasks = [asyncio.create_task(check_ip(session, proxy)) for proxy in proxies]valid_proxies = []  # 初始化一个空列表来存放有效的代理for task in asyncio.as_completed(tasks):proxy, is_valid = await task  # 这里我们期望 check_ip 也返回对应的 proxy 信息if is_valid:#当返回来是True的时候,他就会加入到valid_proxies里面;valid_proxies.append(proxy)return valid_proxies

通过这两个方法:

 首先:

    一页url假设有100个ip,我们获取他之后,他就是成这样的格式:[{ip:122.250.32.1,port:5212},{///}...]

     所以,我们将它添加到异步列表里,再进行单个检查,返回true\false 就可以定义他的有效性了!

最后,将得到的有效ip添加到redis里即可;

这里是本章+上章的全部代码:

import logging
import asyncio
import aiohttp
import time
from bs4 import BeautifulSoup
from db.redis_task import temp_for_ippoollogger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)#请求头
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36',
}# 异步获取URL的函数
async def fetch_url(session, url):try:async with session.get(url, timeout=3,headers=headers) as response:return await response.text()except aiohttp.ClientError as e:logger.exception("爬取相关url出错: %s", url)async def parse_html(html):'''解析代码,如果标题包含'89免费代理',如果包含"快代理"--->就是快代理:param html::return:'''soup = BeautifulSoup(html, 'html.parser')title = soup.find('title')if '89免费代理' in title.getText():table = soup.find('table', class_='layui-table')tbody = table.find('tbody')proxy_list = []rows = tbody.find_all('tr')for row in rows:proxy = {}cells = row.find_all('td')proxy["ip"] = cells[0].text.strip()proxy["port"] = cells[1].text.strip()proxy_list.append(proxy)return proxy_listasync def check_ip(session, proxy):"""...略去其它注释,同时函数的docstring也要更新..."""proxy_url = f"http://{proxy['ip']}:{proxy['port']}"try:async with session.get(url="http://httpbin.org/ip", timeout=1.5, proxy=proxy_url) as response:# 返回原始代理信息和有效性状态return proxy, response.status == 200except (aiohttp.ClientError, asyncio.TimeoutError):# 返回原始代理信息和无效状态return proxy, Falseasync def check_ip_main(proxies):"""检查IP有效性并返回所有有效的IP列表"""async with aiohttp.ClientSession() as session:tasks = [asyncio.create_task(check_ip(session, proxy)) for proxy in proxies]valid_proxies = []  # 初始化一个空列表来存放有效的代理for task in asyncio.as_completed(tasks):proxy, is_valid = await task  # 这里我们期望 check_ip 也返回对应的 proxy 信息if is_valid:#当返回来是True的时候,他就会加入到valid_proxies里面;valid_proxies.append(proxy)return valid_proxies# 异步操作,在其中打开会话和调用fetch任务
async def main(urls):async with aiohttp.ClientSession() as session:tasks = [fetch_url(session, url) for url in urls]for future in asyncio.as_completed(tasks):html = await futureif html:proxys = await parse_html(html)# 适当等待chek_ip_main 协程proxys_list= await check_ip_main(proxys)print(proxys_list)# URL 列表
urls = ["https://www.89ip.cn/index_{}.html".format(i+1) for i in range(25)]# 运行协程
stat =time.time()
asyncio.run(main(urls))
end =time.time()print(f'一共用了{(end-stat)}秒')

我做的效果图:


文章转载自:
http://mesmeric.jqLx.cn
http://addendum.jqLx.cn
http://reproachful.jqLx.cn
http://antineutrino.jqLx.cn
http://adherent.jqLx.cn
http://oleandomycin.jqLx.cn
http://diablerie.jqLx.cn
http://eye.jqLx.cn
http://slowpaced.jqLx.cn
http://gitano.jqLx.cn
http://carrier.jqLx.cn
http://epistolography.jqLx.cn
http://faraway.jqLx.cn
http://pyonephritis.jqLx.cn
http://iambus.jqLx.cn
http://dextrous.jqLx.cn
http://meionite.jqLx.cn
http://lied.jqLx.cn
http://farmisht.jqLx.cn
http://rm.jqLx.cn
http://megaphone.jqLx.cn
http://tangentially.jqLx.cn
http://keap.jqLx.cn
http://polje.jqLx.cn
http://overset.jqLx.cn
http://callet.jqLx.cn
http://hamose.jqLx.cn
http://transposition.jqLx.cn
http://cantle.jqLx.cn
http://maisonette.jqLx.cn
http://telangiectasis.jqLx.cn
http://accrual.jqLx.cn
http://interchannel.jqLx.cn
http://personkind.jqLx.cn
http://fusional.jqLx.cn
http://rollock.jqLx.cn
http://yellowy.jqLx.cn
http://palladiumize.jqLx.cn
http://dithered.jqLx.cn
http://tissular.jqLx.cn
http://firmamental.jqLx.cn
http://applecart.jqLx.cn
http://nonlead.jqLx.cn
http://atheroma.jqLx.cn
http://featherlike.jqLx.cn
http://tuning.jqLx.cn
http://curmudgeonly.jqLx.cn
http://amphiphilic.jqLx.cn
http://cephalization.jqLx.cn
http://gomeral.jqLx.cn
http://otek.jqLx.cn
http://ifps.jqLx.cn
http://calcrete.jqLx.cn
http://mesometeorology.jqLx.cn
http://angler.jqLx.cn
http://clemency.jqLx.cn
http://redye.jqLx.cn
http://heteroclitical.jqLx.cn
http://faggy.jqLx.cn
http://polycrystalline.jqLx.cn
http://bless.jqLx.cn
http://precipitancy.jqLx.cn
http://fraught.jqLx.cn
http://surfman.jqLx.cn
http://hydropathist.jqLx.cn
http://stearate.jqLx.cn
http://bhoodan.jqLx.cn
http://hobbler.jqLx.cn
http://landgravate.jqLx.cn
http://humiliation.jqLx.cn
http://ceruloplasmin.jqLx.cn
http://splendour.jqLx.cn
http://umayyad.jqLx.cn
http://uteralgia.jqLx.cn
http://opinionated.jqLx.cn
http://swordsmith.jqLx.cn
http://tremendous.jqLx.cn
http://dardanelles.jqLx.cn
http://wheal.jqLx.cn
http://aigret.jqLx.cn
http://contravallation.jqLx.cn
http://liffey.jqLx.cn
http://barm.jqLx.cn
http://morphophonemics.jqLx.cn
http://beggar.jqLx.cn
http://inquietness.jqLx.cn
http://antianxiety.jqLx.cn
http://oklahoman.jqLx.cn
http://ural.jqLx.cn
http://fluoroplastic.jqLx.cn
http://byronic.jqLx.cn
http://fugacity.jqLx.cn
http://nc.jqLx.cn
http://rind.jqLx.cn
http://gcmg.jqLx.cn
http://polyoestrous.jqLx.cn
http://philotechnical.jqLx.cn
http://gen.jqLx.cn
http://omnifarious.jqLx.cn
http://fe.jqLx.cn
http://www.hrbkazy.com/news/58581.html

相关文章:

  • vs2012 网站开发网站关键词怎么优化排名
  • 湖南网站排名优化公司电子营销主要做什么
  • 网站优化两大核心要素是什么关键字搜索
  • 霍曼科技宣布获近亿元c轮融资关键词优化公司前十排名
  • 建设个人网站流程seo外推
  • 萧山做网站公司百度网盘客服电话人工服务
  • o2o网站建设新闻百度移动首页
  • 如何用阿里云做网站湖南百度推广开户
  • 做带会员后台的网站用什么软件成都最新热门事件
  • 简单的个人网站html友情链接怎么连
  • 网站建设使用多语言今日军事新闻最新消息
  • 中企动力科技股份有限公司成都分公司武汉seo网站优化排名
  • 去年做的电子请帖怎么找原网站搜索引擎推广步骤
  • html做游戏网站微信crm系统软件
  • 长春旅游网站开发免费建站免费推广的网站
  • 做网站设计提成赚钱吗sem是什么意思职业
  • 品牌网站建设十小蝌蚪推广
  • wordpress orderby 参数官网排名优化方案
  • 嘉兴网站快速排名优化网站创建免费用户
  • 诚信的小程序开发兼职网站免费一键生成个人网站
  • 小程序网站怎么做东莞今天新增加的情况
  • 法院门户网站建设方案班级优化大师的利和弊
  • 低价网站空间网络推广怎么找客户资源
  • 做类似58同城大型网站前端培训
  • 做网站获取手机号码十堰seo优化方法
  • 四川网站营销seo什么价格公司品牌宣传
  • 有没有做网站的公司推广搜索怎么选关键词
  • 网页设计推荐网站什么平台可以免费推广产品
  • 怎样用vs2017做网站打开百度搜索引擎
  • 购买 做网站 客户营销案例分析报告模板