Python-爬虫
参考文献
爬虫
-
爬虫实际上是用浏览器访问的方式模拟了访问网站的过程,整个过程包括三个阶段:打开网页、提取数据和保存数据
-
在 Python 中,这三个阶段都有对应的工具可以使用。
-
在“打开网页”这一步骤中,可以使用 Requests 访问页面,得到服务器返回给我们的数据,这里包括 HTML 页面以及 JSON 数据。
-
在“提取数据”这一步骤中,主要用到了两个工具。针对 HTML 页面,可以使用 XPath 进行元素定位,提取数据;针对 JSON 数据,可以使用 JSON 进行解析。
-
在最后一步“保存数据”中,我们可以使用 Pandas 保存数据,最后导出 CSV 文件。
-
Requests
访问页面
-
Requests 是 Python HTTP 的客户端库,编写爬虫的时候都会用到,编写起来也很简单。它有两种访问方式:Get 和 Post。这两者最直观的区别就是:Get 把参数包含在 url 中,而 Post 通过 request body 来传递参数.
1
2
3r = requests.get('http://www.douban.com')
r = requests.post('http://xxx.com', data = {'key':'value'})
XPath
定位
-
XPath 是 XML 的路径语言,实际上是通过元素和属性进行导航,帮我们定位位置。
表达式 含义 node
选node节点的所有子节点 /
从根节点选取 //
选取所有的当前节点,不考虑他们的位置 .
当前节点 ..
父节点 @
属性选择 ` ` text()
当前路径下的文本内容
示例
xpath('node')
选取了 node 节点的所有子节点;xpath('/div')
从根节点上选取 div 节点;xpath('//div')
选取所有的 div 节点;xpath('./div')
选取当前节点下的 div 节点;xpath('…')
回到上一个节点;xpath('//@id')
选取所有的 id 属性;xpath('//book[@id]')
选取所有拥有名为 id 的属性的 book 元素;xpath('//book[@id=“abc”]')
选取所有 book 元素,且这些 book 元素拥有 id= "abc"的属性;xpath('//book/title | //book/price')
选取 book 元素的所有 title 和 price 元素。
解析库lxml
- 这个库的解析效率非常高,使用起来也很简便,只需要调用 HTML 解析命令即可,然后再对 HTML 进行 XPath 函数的调用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 HoleLin's Blog!