Python爬取神鸡免费代理ip(一)

2019年5月11日 16:04

556

Python爬取神鸡免费 代理ip (一)。大家好,今天神鸡小编给大家分享一个Python爬取免费代理IP的一段代码。

首先分享一下思路。

1,预先从代理IP网站,爬取代理IP信息,存到数据库。

2,从数据库中随机提取一条代理IP。

3,提取代理IP需要注意有校性,通过和百度网站测试,删除无效代理IP,返回有效的代理IP。

说一下依赖包,然后我用的是Python3.6+Ubuntu16.04

importrequests

fromscrapy.selectorimportSelector

importpymysql

首先就是requests模块,用来发送请求。

然后就是scrapy,没错这就是爬虫框架,但是我们现在就只用到里面的Selector选择器进行提取数据,用起来比lxml方便多了。

最后就是数据库,这边我用的是最熟悉的MySQL数据,当然最优的选择是redis数据库,但是好多人对NoSQL数据不是很熟悉,所以我使用MySQL数据库来保存数据。

好现在开始代码实现,实现之前我们先创建数据库和数据表

"""

createdatabasesproxy_ipcharset=utf8;

CREATETABLE ip_info (

ip varchar(20)NOTNULL,

port varchar(5)NOTNULL,

speed floatDEFAULTNULL,

proxy_type varchar(5)DEFAULTNULL

)ENGINE=InnoDBDEFAULTCHARSET=utf8;

"""

1

爬取数据存入数据库

#链接mysql数据库

conn=pymysql.connect(host='localhost',port=3306,database='proxy_ip',user='root',

password='mysql',charset='utf8')

#获取游标对象

cus=conn.cursor()

#首先定义一个函数来抓取代理IP到数据库当中

defcrawl_ips():

#首先清空表

sql="deletefromip_info;"

#执行

cus.execute(sql)

#提交

conn.commit()

url=" http://www.shenjidaili.com/nn/{} "

headers={

"User-Agent":"Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/536.6(KHTML,likeGecko)Chrome/20.0.1092.0Safari/536.6"}

#记录次数

num=0

#我们循环10页抓取

forpinrange(1,11):

re=requests.get(url.format(p),headers=headers)

#我用了scrapy框架里面的选择器

select=Selector(text=re.text)

all_trs=select.xpath('//table[@id="ip_list"]')[0]

#获取整个tr标签

tr_list=all_trs.xpath("//tr")[1:]#去掉标题

fortrintr_list:

#提取ip

ip=tr.xpath('./td[2]/text()').extract()[0]

#提取端口

port=tr.xpath('./td[3]/text()').extract()[0]

#proxy_info['address']=tr.xpath('./td[4]/a/text()').extract()[0]

#提取速度

speed=tr.xpath('./td[7]/div/@title').extract()[0]

speed=(speed.split("秒"))[0]#从中把数字数据提取出来

#提取类型(http或者https)

type=tr.xpath('./td[6]/text()').extract()[0]

#把延迟速度小于2秒的存入数据可

iffloat(speed)

print("爬取的ip",ip,port,type,speed)

sql="""insertintoip_info(ip,port,speed,proxy_type)values('','',,'')""".format(

ip,port,speed,type

)

#执行

cus.execute(sql)

#提交

conn.commit()

num+=1

print("已经抓取{}条代理ip".format(num))

调用这个函数crawl_ips()往mysql数据库中存入数据


相关文章


@ 2016 - 2020.神鸡IP代理,
All rights reserved.
鄂ICP备18017015号-4

禁止利用本站资源从事任何违反本国(地区)法律法规的活动
神鸡代理ip专业提供http代理ip地址,动态ip代理服务器实时更新