python讨论qq群:996113038
导语:
常在河边走,哪有不湿鞋。
前两天小编在爬取一个美眉网站的时候,刚写了requests.get()就运行了一下,结果:
显然,我的IP被这个网站封了。于是,我就赶紧去找代理IP。
最后到了“快代理”这个网站。一下就看到了大片大片的IP数据在那里,然后,好久没写爬虫的我手痒了。
废话不多说了,走起。
代码及相关资源获取:
关注“python趣味爱好者”公众号,回复“爬取IP”获取源代码。
开发工具:
python3.6.4。
需要安装的第三方库:
requests
parsel
time
效果演示:
效果就是爬取到了“快代理”网站的IP:
基本原理:
和所有的爬虫原理一样。都是先踩点,点开审查元素。看看网页有没有什么规律。用resquest.get()获取网页。然后进行分析。
base_url='https://www.kuaidaili.com/free/inha/{}/'.format(page)
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0'
}
response=requests.get(base_url,headers)
为了防止被反爬,我们还加上了一个headers。这样,网页就爬取下来了。
然后,我们就需要对网页进行分析。提取出我们需要的信息。方法如下:我们就是用了parsel这个第三方库。
parsel_list=html_data.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')
这一行代码可以提取出网页里面的IP号,端口等等信息。
部分代码:
展示一部分代码,完整代码后台回复“爬取IP”获取。
response=requests.get(base_url,headers)
data=response.text
# print(data)
html_data=parsel.Selector(data)
parsel_list=html_data.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')
for tr in parsel_list:
proxies_dict={}
http_type=tr.xpath('./td[4]/text()').extract_first()
ip_num=tr.xpath('./td[1]/text()').extract_first()
pot=tr.xpath('./td[2]/text()').extract_first()
print(http_type,ip_num,pot)
proxies_dict[http_type]=ip_num+":"+pot
proxies_list.append(proxies_dict)
time.sleep(5)
感谢大家观看,有钱的老板可以打赏一下小编哦!
扫描下方二维码,关注公众号
参考资料:
图片来源:https://images.pexels.com/photos/3558637/pexels-photo-3558637.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500
参考来源:青灯教育