一年前499买了这套教程,当时完全按照教程内的代码实现,是不能成功实现爬取的,对于初学的我来说,有困难又不能解决,效率太低就放弃了。最近重新这套教程,并且实现了其中三个实战:
14.Requests+正则表达式爬取猫眼电影,https://edu.hellobi.com/course/157/play/lesson/2575
15分析Ajax请求并抓取今日头条街拍美图,https://edu.hellobi.com/course/157/play/lesson/2578
16使用Selenium模拟浏览器抓取淘宝商品美食信息,https://edu.hellobi.com/course/157/play/lesson/2579
正好这三部是免费的。完全按照视频内编码是不能实现的,有些是因为视频不够详细,有些是因为目标站点代码做了改动,我做一个记录,也算是一个分享。
14.Requests+正则表达式爬取猫眼电影
问题点:需要在请求时带上请求头,模拟浏览器的行为,否则访问失败。
对于初学者来说可能很懵,甚至很难找到解决方法,其实是很基础的问题,即如果是用浏览器访问网站,网站是知道访问者的浏览器信息的,有浏览器信息代表着该访问是一个“人”通过浏览器在正常访问,而不是程序去爬取网页,这也是一种基础的“反爬”策略。
应对办法:
在下图红框前面增加以下代码:
header = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36'
}
并将红框部份改为:response = request.get(url, headers=header)
(待续)