代理IP获取器(之前小甲鱼使用的代理已经不再使用)
本帖最后由 无符号整形 于 2018-7-26 16:35 编辑这个获取器能获取1000个代理,够用了
回复可见代码~
**** Hidden Message ***** 看看代码怎么写 回复可见代码~{:10_282:} SixPy 发表于 2016-7-22 10:23
回复可见代码~
其实它每页只会爬一个。。。 光要个IP有什么用?
端口号也要的啊~
协议类型也要的啊~ 无符号整形 发表于 2016-7-22 11:02
其实它每页只会爬一个。。。
你这样做效率太低
其实只要把 table 标签里的数据抓出来,变成二维list就行了。 http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=74010&pid=2614410
这里有 处理Table 的 正则表达式 SixPy 发表于 2016-7-22 11:27
你这样做效率太低
其实只要把 table 标签里的数据抓出来,变成二维list就行了。
{:10_277:}
正如小甲鱼所说,改了代码怎么办? 无符号整形 发表于 2016-7-22 11:36
正如小甲鱼所说,改了代码怎么办?
改毛线~
网站该代码容易,还是 你改正则容易? SixPy 发表于 2016-7-22 11:38
改毛线~
网站该代码容易,还是 你改正则容易?
好吧我服了你{:10_266:} 其實爬蟲這東西, 除非你有網站的API, 否則都是要不停改的。 谢谢楼主啊! 分享感谢 SixPy 发表于 2016-7-22 11:38
改毛线~
网站该代码容易,还是 你改正则容易?
已经可以获取协议和端口了
不过正则表达式很难弄,我弄不了。。。{:10_250:}
用最传统的find方式的。。。 支持下,版主大人,另外,您啥时能开发点有用的程序呀~ 注意一下:这个IP过段时间会失效的 无符号整形 发表于 2016-7-22 14:55
已经可以获取协议和端口了
不过正则表达式很难弄,我弄不了。。。
用最传统的find方式的。。 ...
给你一个 正则的例子
import requests as req
import re
import pprint as pp
heads={
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding':'gzip,deflate,sdch',
'Accept-Language':'zh-CN,zh;q=0.8',
'Cache-Control':'max-age=0',
'Connection':'keep-alive',
'Host':'www.kuaidaili.com',
'User-Agent':'Mozilla/5.0 (Windows NT 5.1)'
}
ssn = req.Session()
ssn.headers = heads
ptn表=re.compile(r'<div[^>]*?id="list".*?'
r'(<table[^>]*>.*?</table>)',
re.X|re.S)
ptn行=re.compile(r'<tr[^>]*>.*?</tr>',re.S)
ptn格=re.compile(r'<td[^>]*>(.*?)</td>',re.S)
url = "http://www.kuaidaili.com/free/inha/"
Proxys=[['IP','PORT','类型','响应速度','最后验证时间']]
for i in range(1,6): # 抓取 5 页
rsp = ssn.get(url+str(i))
rsp.encodeing='utf-8'
html = rsp.text
表=ptn表.findall(html)
行=ptn行.findall(表)
for td in 行 :
td=ptn格.findall(td)
td.pop(4)
td.pop(2)
Proxys.append(td)
pp.pprint(Proxys)
input('暂停')
结果:
SixPy 发表于 2016-7-22 21:18
结果:
额,正则还是太难,find好用些、、、
我除非在find用不上才会用正则 学习学习