-----------------------------------通过headers中的User-Agent字段来反爬--------------------------------------------------
- 反扒原理:爬虫默认情况下没有User-Agent
- 解决方法:请求之前添加User-Agent即可;更好的方式是使用User-Agent池来解决(收集一堆User-Agent的方式,或者是随机生成User-Agent)
import random
def get_ua():
first_num = random.randint(55, 62)
third_num = random.randint(0, 3200)
fourth_num = random.randint(0, 140)
os_type = [
'(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)', '(X11; Linux x86_64)',
'(Macintosh; Intel Mac OS X 10_12_6)'
]
chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num)
ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',
'(KHTML, like Gecko)', chrome_version, 'Safari/537.36']
)
return ua
-------------------------SCRAPY在windows 下的安装-----------------------------
常见的错误:1.VC++14 TWISTED----->没有vc++的支持,这个时候需要进行离线安装------使用.whl文件进行安装
whl就是一种zip包格式,但是我们需要先安装wheel模块才能安装whl包。安装很简单,我们只需要在ide中输入pip install wheel即可。这种情况是在刚刚安装好python而且从没有装过wheel模块的情形下。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 在这个网站下载whl文件
下载好了就切换到相对应的目录下面进行cmd操作:pip install *****
2.即使在安装完成后在cmd中输入scrapy命令,出现了 uasage:。。。Availble commands:....... 相关的内容,这样仍然还没有安装完成
scrapy bench 只要一运行就会报win32的错误------》解决:pip install pywin32
3.在上面的操作都完成了之后,再使用pip install scrapy------进行安装
安装正常都是没有问题了,安装好了之后,再使用scrapy bench进行测试 如果出现如下的界面,说明安装成功: