jgby111
2019-10-14 22:53
采纳率: 50%
浏览 2.2k

爬虫中加入请求头导致报错:'str' object has no attribute 'items

在写爬虫时为了规避反爬虫机制,加入了Chrome浏览器请求头.但是在
response = request.Request(url,headers=headers) 语句中加入headers=headers,运行程序时就会报错:'str' object has no attribute 'items.如果只用response = request.Request(url)就不会出现异常而得到正确的爬取结果.求指教,谢谢!!图片说明图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • GQB1226 2019-10-15 14:25
    已采纳

    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"}
    
    点赞 评论
  • 新睿GOAL 2020-03-28 09:59

    我也遇到了这个问题,拿掉header就可以,否则是爬了几行就报错(我弄了个header的列表,从中随机取header)。
    请问楼主有解决办法吗
    补充一下,我打印日志检查了的我Header,都是dict类型的。另外,这些header在串行,以及使用进程池的apply_async()时都能正确运行,在使用进程池map方法时就会出这个问题。。。

    点赞 评论

相关推荐 更多相似问题