新人爬虫 爬免费ip
本帖最后由 tyl75 于 2018-11-24 22:44 编辑python3 的代码 rang次数过多会被封ip 求指点优化
#coding:utf8
import requests
import re
import chardet
def get_html(page):
html = requests.get(page).text
return html
def find(text):
q = re.findall('<tbody>(.*?)</tbody>',text,re.S)
return q
def getinfo(eachclass):
info={}
info['ip'] = re.search('<td data-title="IP">(.*?)</td>', eachclass, re.S).group(1)
info['PORT'] = re.search('<td data-title="PORT">(.*?)</td>', eachclass, re.S).group(1)
info['匿名度'] = re.search(u'<td data-title="匿名度">(.*?)</td>', eachclass, re.S).group(1)
info['类型'] =re.search(u'<td data-title="类型">(.*?)</td>', eachclass, re.S).group(1)
info['位置'] = re.search(u'<td data-title="位置">(.*?)</td>', eachclass, re.S).group(1)
info['响应速度'] =re.search(u' data-title="响应速度">(.*?)</td>', eachclass, re.S).group(1)
return info
def saveinfo(classinfo):
f = open('info.txt','a')
for each in classinfo:
f.writelines('ip:' + each['ip']+" ")
f.writelines('端口:' + each['PORT']+" " )
f.writelines('匿名度:' + each['匿名度']+" " )
f.writelines('类型:' + each['类型']+" " )
f.writelines('位置:' + each['位置']+" " )
f.writelines('响应速度:' + each['响应速度'] + '\n')
f.close()
classinfo = []
for i in range(1,10):
page = 'https://www.kuaidaili.com/free/inha/'+str(i)
text = get_html(page)
shuaixuan = find(text)
qiepian = str(shuaixuan).split('<tr>')
del qiepian[0]
for each in qiepian:
# print each
info =getinfo(each)
classinfo.append(info)
saveinfo(classinfo)
degouk42 发表于 2018-11-24 23:09
两个办法
1. 限速.在 get_html 之前sleep个1秒不行就5秒.思路就是降低访问速度.
2. 代{过}{滤}理.使用不 ...
谢谢 我待会就试试 之前python2一直卡在正则中文编码匹配不到,就换了python3 请问有什么办法能匹配的上吗 \u533f\u540d\u5ea6 这种编码 两个办法
1. 限速.在 get_html 之前sleep个1秒不行就5秒.思路就是降低访问速度.
2. 代{过}{滤}理.使用不同的代{过}{滤}理ip访问页面 学习学习 me too! 学习了,谢谢 来学习一下!!! 厉害了,学习一下 学习一下 学习学习!! 感谢楼主,找了好久
学习一下
页:
[1]
2