某知名IT公司资深程序员关于Python爬虫的心得与总结
现在学习Python的小伙伴中,起码有一半以上的在学习爬虫。
你问为什么会有这么多人学习爬虫?
因为爬虫很简单呀,而且效果非常的明显,爬取网站小姐姐的照片,说批量下载就批量下载,好不含糊!是不是效果非常的明显?!
为什么说它简单呢,因为爬取同一个网站,可以用四种方法实现,一般掌握一种就能那网站数据爬取下来,但是他有四种方法,那不是我想用什么姿势就用什么姿势?!
一、工欲善其事必先利其器
1. F12:快捷键,(更多工具——开发者工具)。可以直接查看当前页面的html结构。有一点要注意,当前页面的html结构可能是Js动态生成的。比如淘宝网页的Josn数据源,但在开发者工具下是HTML结构。这个时候使用鼠标右键——查看源代码,可以看到json数据。
2.element选择键,F12后,下图中标示的方框内选项可以直接在页面中检索到对应的HTML标签位置——即在页面中点击选取。
3.console控制台,在这里可以看到一些与服务器的交互信息,上图中蓝色所指为清空,在此界面下,点击网页上的链接、按键或是F5刷新,可以看到与网页的交互信息。点击相应console下新出现的链接,可直接跳转到对应信息条目下。动态网页这个工具有很大的帮助,更多信息看第4条。控制台下可以输入一些变量函数,但因为没用到,所以没太多研究。有了解的可以分享下。
4.动态网页下,console控制台会出现一些链接,注意前面的信息:XHR。在这里插一点介绍,了解AJAX的小朋友可直接跳过。
常用到的就这些
二、磨刀不误砍柴工
静态网页:静态网页以及少量表单交互的网站可以使用如下的技术路线:
- requests + BeautifulSoup + select css选择器
- requests + BeautifulSoup + find_all 进行信息提取
- requests + lxml/etree + xpath 表达式
- requests + lxml/html/fromstring + xpath 表达式
动态网页。简单动态网页,需要有点击或者提交的可以参考selenium + phantomJS组合使用。
很多人觉得爬虫有点难以掌握,因为知识点太多,需要懂前端、需要python熟练、还需要懂数据库,更不用说正则表达式、XPath表达式这些。