代码拉取完成,页面将自动刷新
同步操作将从 耿直的小爬虫/Python爬虫 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
import requests
from pyquery import PyQuery as pq
import json
#import requests.exceptions as w
from requests.exceptions import ConnectionError,ChunkedEncodingError as w
import re
from threading import Thread
import time
t=time.time()
headers={
'User-Agent':'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50'
}
def get_page(page):
url = 'http://www.xicidaili.com/nn/'+page
resonp=requests.get(url,headers=headers).text
# print(resonp)
repo=re.compile("(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,4}).*?(\d{2,6})",re.S).findall(resonp)
test=[]
m=1
for li in repo:
#如果下面不加\n在写入的时候就是一行写满爬取到的IP和代理 加了 \n就会换行 写入
#也可以看出元祖类型可以用下标
ip = li[0] +':'+ li[1] #+ '\n'
print(ip)
#开始测试可用的代理
proxy=ip
proxies={
'http':'http://'+proxy,
'https':'https://'+proxy
}
print(proxies)
try:
response=requests.get('http://httpbin.org/get',timeout=15,proxies=proxies)
#print(response.text)
#print(response.status_code)
print('成功%d个'%m,'状态码为:',response.status_code)
if response.status_code == 200:
er=proxy+'\n'
with open('代理IP.txt','a+')as x:
x.write(er)
m+=1
except Exception as e:
print('Error',e.args)
# with open('代理ip.txt','a')as o:
# # o.write(ip)
#
# #print(resonp)
# #doc=pq(resonp)
# #items=doc('.odd').items()
# #for i in items:
# #oppo={}
# # oppo['ip 端口 服务器地址 是否匿名 类型 存活天数 验证日期']=i.text()
# #print(oppo)
# #with open('代理IP.txt','a+')as c:
# # c.writelines(json.dumps(oppo))
#爬取时网页有3300多页 所以循环里的次数可自行更改
#爬取3000多页可用代理 请用服务器所以VPS这些7*24小时的 不然爬取一半关掉 下次还得重来
#添加多线程来给程序爬取速度提提速
#class modopo(threading.Thread):
# def __init__(self):
# threading.Thread.__init__(self)
# def run(self):
#sta=modopo()
#sta.start()
#sta.join()
print('执行完毕')
for p in range(2):
print('此时的p是:', p)
th=Thread(target=get_page(str(p)))
th.start()
print(time.time() - t)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。