无符号整形 发表于 2016-7-22 09:07:51

代理IP获取器(之前小甲鱼使用的代理已经不再使用)

本帖最后由 无符号整形 于 2018-7-26 16:35 编辑

这个获取器能获取1000个代理,够用了

回复可见代码~
**** Hidden Message *****

w298102526 发表于 2016-7-22 09:40:21

看看代码怎么写

SixPy 发表于 2016-7-22 10:23:25

回复可见代码~{:10_282:}

无符号整形 发表于 2016-7-22 11:02:39

SixPy 发表于 2016-7-22 10:23
回复可见代码~

其实它每页只会爬一个。。。

SixPy 发表于 2016-7-22 11:09:46

光要个IP有什么用?
端口号也要的啊~
协议类型也要的啊~

SixPy 发表于 2016-7-22 11:27:04

无符号整形 发表于 2016-7-22 11:02
其实它每页只会爬一个。。。

你这样做效率太低
其实只要把 table 标签里的数据抓出来,变成二维list就行了。

SixPy 发表于 2016-7-22 11:35:49

http://bbs.fishc.com/forum.php?mod=redirect&goto=findpost&ptid=74010&pid=2614410

这里有 处理Table 的 正则表达式

无符号整形 发表于 2016-7-22 11:36:07

SixPy 发表于 2016-7-22 11:27
你这样做效率太低
其实只要把 table 标签里的数据抓出来,变成二维list就行了。

{:10_277:}
正如小甲鱼所说,改了代码怎么办?

SixPy 发表于 2016-7-22 11:38:38

无符号整形 发表于 2016-7-22 11:36
正如小甲鱼所说,改了代码怎么办?

改毛线~
网站该代码容易,还是 你改正则容易?

无符号整形 发表于 2016-7-22 11:43:27

SixPy 发表于 2016-7-22 11:38
改毛线~
网站该代码容易,还是 你改正则容易?

好吧我服了你{:10_266:}

kit1858644 发表于 2016-7-22 12:45:10

其實爬蟲這東西, 除非你有網站的API, 否則都是要不停改的。

1812810219 发表于 2016-7-22 13:08:13

谢谢楼主啊!

lileiwan 发表于 2016-7-22 13:56:26

分享感谢

无符号整形 发表于 2016-7-22 14:55:07

SixPy 发表于 2016-7-22 11:38
改毛线~
网站该代码容易,还是 你改正则容易?

已经可以获取协议和端口了
不过正则表达式很难弄,我弄不了。。。{:10_250:}
用最传统的find方式的。。。

拈花小仙 发表于 2016-7-22 15:56:09

支持下,版主大人,另外,您啥时能开发点有用的程序呀~

无符号整形 发表于 2016-7-22 17:14:45

注意一下:这个IP过段时间会失效的

SixPy 发表于 2016-7-22 21:13:08

无符号整形 发表于 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:48

结果:

无符号整形 发表于 2016-7-22 21:27:48

SixPy 发表于 2016-7-22 21:18
结果:

额,正则还是太难,find好用些、、、
我除非在find用不上才会用正则

弧矢七 发表于 2016-7-23 18:36:47

学习学习
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 代理IP获取器(之前小甲鱼使用的代理已经不再使用)