Python技术点

调试过程中遇到的问题,继上一篇博文!

(1)爬取第一个页面之后名字链接页面存在分页情况

解决方案:根据子网页,选择合适的正则表达式,获取页面数,根据页面数自动生成换页URL

 

 

 

 

 

 

 

(2)测试过程中某些网页数据存在编码问题。

解决方案:在获取信息时,使用pandas保存数据,它提供编码兼容

 

 

 

 

(3)测试过程中存在某些英文名没有用户评论

解决方案:在获取用户评论模块Comment时,设置判断Comment模块中的内容是否为空,不为空时,则进一步解析模块的具体内容,并保存数据。为空,则跳过。

 

 

 

(4)测试过程中存在访问次数过多和网络异常情况

解决方案:在发起网页请求时,设置异常捕获,请求时间超时,则退出循环,进行新一次网页请求,设置headers,仿造用户ID对网页进行请求。

 

 关于转换伪ID,进行对网页的访问:

浏览器中打开页面,以edge为例,点击“查看源”或F12

第一步:点击上图中“网络”标签,然后刷新或载入页面

第二步:在右侧“标头”下方的“请求标头”中的所有信息都是headers内容,添加到requests请求中即可

代码如下:

 

headers = {'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
               'Accept - Encoding':'gzip, deflate',
               'Accept-Language':'zh-Hans-CN, zh-Hans; q=0.5',
               'Connection':'Keep-Alive',
               'Host':'zhannei.baidu.com',
               'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063'}
r = requests.get('http://zhannei.baidu.com/cse/search', params=keyword, headers=headers, timeout=3)
posted @ 2019-12-22 18:56  小高冷  阅读(414)  评论(1编辑  收藏  举报