Python3爬虫详解

1概述

 

爬虫在Python中是个实现起来比较简单,关键在于网页的分析和内容的抓取。最近由于个人需要写了些内容,这里总结下爬虫相关的内容。

本文爬虫相关实现没有使用scrapy框架,通过urllib请求、bs4来实现。

 

2网络请求

网络请求部分用到urllib模块中的request类,如果需要控制 请求头或带请求数据的时候需要用到urllib.request的Request类。

发送一个简单的Get请求

    

发送Get请求,带请求头修改

   

l  发送带数据的Post请求

 

 

设置请求头部内容的方式:

l 通过Request对象添加

 

l 通过urllib.request.Request(headers={})关键字参数设置请求头

 

设置请求超时

l 对整个socket层设置超时,后面在再用到socket不用重新设置,单位秒

 

l 睡眠time模块

time.sleep(10)

l request.urlopen(req,timeout=15)

 

设置代理

1. 代理设置步骤

设置代理ProxyHandler、初始化opener[设置请求头]、安装opener、使用urlopen

 

使用install_opener方法之后,会将程序默认的urlopen方法替换掉。也就是说,如果使用install_opener之后,在该文件中,再次调用urlopen会使用自己创建好的opener。如果不想替换掉,只是想临时使用一下,可以使用opener.open(url),这样就不会对程序默认的urlopen有影响。

2. 获取代理IP。上面的步骤中需要用 带代理IP,网上可以找到很多免费的IP地址,这里我自己的实现是爬取的http://www.xicidaili.com 这个网站的

   

使用只需要

 

IP地址测试可以通过http://www.whatismyip.com.tw/ 这个网站测试,代码如下

 

如果IP可用,返回的数据中会有我们请求的实际IP地址。

一次可以爬取到大约100ip地址,不过不是所有都能用,如果使用的话,发现不能用就从list中移除,这样可以大大提高爬虫的效率。

 

3获取数据

爬取到网站内容后需要筛选获取我们需要的数据。这里使用bs4,即 Beautiful Soup.官方文档的:

https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id1

 

具体不再赘述。注意一点,有些请求接收的格式为gzip的,需要解压缩,不然会出现乱码的情况。

 

 

4总结

使用Python写网络爬虫非常方便,学会这个技能非常有用,如聚合我们需要的内容,分析网络数据,通知目标内容更新等 。

 

以上。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值