Python爬虫xpath解析
引言
上篇文章挖了个坑说要解释爬虫的程序,那就找时间填上了,其实Python的爬虫十分的简单,基本上只有要有一个模板,就可以了,这里恬不知耻的推广一下我的模板,我的这个爬虫前面的两个准备文件比较完善,可以直接套用,提高爬虫的安全性。
核心代码
url的获取
作为爬虫肯定要知道哪一个网址是目标,然后进行观察,网址是不是有翻页的能力,有的话翻页的能力在url上是怎么体现的,总结出翻页的时候url的变化规律,根据这个规律在你的爬虫中先自己生成一个或者是一组的请求url这就是第一步
爬取内容
我使用的是Python提供的request和lxml包中的etree。当你确定了你的url之后使用python的request获取这个网页的数据。然后使用etree对网页的内容进行解析。这两个步骤的代码比较简单。
1 | data = requests.get(url, headers=headers, proxies=proxies) # 此处是请求 |
xpath的使用
这个才是爬虫的真正的精髓,通过python提供的解析其实非常容易实现。这里只解释非常常用的几种语法,至于所有的xpath语法,可以参考这个网页。
选取一个元素的所有子节点就是直接使用
1
html.xpath("nodename")
从根节点选取
1
html.xpath("/nodename")
从一个节点中选取所有的同名子节点
1
html.xpath("/nodename/nodename2")
从匹配选择的当前节点选择所有规定名字的节点,而不考虑它们的位置。
1
html.xpath("//nodename")
选取某个节点的属性
1
html.xpath("/nodename/@src") # 选取nodename节点的src属性值
选取某个节点的内容
1
html.xpath("/nodename/text()") # 选取nodename中的内容
筛选具有某个属性特定值的节点
1
html.xpath("/nodename@[src="https://icimence.cn"]")
这些基本上是比较常用的,详细的还是看上文给出的链接即可。
Json数据格式打包
这部分就是普通的代码模板,直接放代码吧。
1 | for book_name, book_img, author_name, press, press_year, pages, price, ISBN, score, number_reviewers, introduction in zip( |
结语
结合上文的介绍和上一篇文章的模板,相信有一定Python基础的人都能写出一个较为实用的爬虫程序了,你可以开始自己的创作了!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 icimence's Tech Blog!
评论





