在写爬虫时为了规避反爬虫机制,加入了Chrome浏览器请求头.但是在
response = request.Request(url,headers=headers) 语句中加入headers=headers,运行程序时就会报错:'str' object has no attribute 'items.如果只用response = request.Request(url)就不会出现异常而得到正确的爬取结果.求指教,谢谢!!
headers应该是个dict,例如
#设定请求头中的浏览器标识
headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"}
我也遇到了这个问题,拿掉header就可以,否则是爬了几行就报错(我弄了个header的列表,从中随机取header)。
请问楼主有解决办法吗
补充一下,我打印日志检查了的我Header,都是dict类型的。另外,这些header在串行,以及使用进程池的apply_async()时都能正确运行,在使用进程池map方法时就会出这个问题。。。