《python爬虫练习》之随机的User-Agent请求头
1. 背景:
大数据时代,互联网上很多的数据需要被爬取然后进行筛选,就可以被我们所利用,在这个过程中反爬技术也应运而生,互联网之间的攻防战一直在不断升级。那么我们在爬取数据的时候,自然需要进行伪装,让爬取数据的服务器认为我们是合法的访问。 有大佬封装了一个请求头的库,我们可以通过语句进行随机的访问,我就随机记录一下,可能我平时爬的数据比较少,多为单个UserAgent,有浏览器也有手机但是没有使用过这种随机的,但是作为一个爬虫类的知识点,我觉得可以记录一下。
2.使用fake_useragent库函数
from fake_useragent import UserAgent
UA = UserAgent()
print(UA.random)
3.根据浏览器来选择随机的数据
from fake_useragent import UserAgent
UA = UserAgent()
print(UA.chrome)
print(UA.ie)
print(UA.firefox)
print(UA.opera)
print(UA.safari)
这样根据不同的浏览器就可以生成不同的数据,当然这里每次都是随机的生成的。我们在写爬虫的时候如果为了严谨可以适当的这样写。当然对等的来讲,还有一个请求头中很重要的点就是IP,虽然我对于网络攻击不是非常了解,但是常见的DDOS攻击不就是对服务器进行多线程的访问,从而使服务器宕机,服务器可以通过黑白名单来进行ip地址的封杀,爬虫类似也会被识别ip从而使爬虫任务失败,这个时候黑客会做一些“肉鸡”,绑架一些主机或者说孪生出很多的ip地址去访问,我们也是一样的通过代理的形式使用不同的IP可以防止被封杀的可能性。
4.IP池
有付费的也有开源的项目,都可以试试,我后面有时间可能会单独出一期说明吧。以下,是一些开源的IP池。
- scrapy-proxy-pool: https://github.com/hyan15/scrapy-proxy-pool
- ipproxytool: https://github.com/brain-snail/ipproxytool
- ProxyPool: https://github.com/jhao104/proxy_pool
- PythonProxyPool: https://github.com/henson/PythonProxyPool
- proxy-pool: https://github.com/Python3WebSpider/proxy-pool
- CrawlerProxyPool: https://github.com/Python3WebSpider/CrawlerProxyPool
- SimpleProxyPool: https://github.com/kjnfff/SimpleProxyPool
- ProxySpider: https://github.com/Python3WebSpider/ProxySpider
- XX-net: https://github.com/XX-net/XX-Net