用python写爬虫--3.1解析网页+pyquery
前面用的是beautifulsoup来解析,最近用的pyquery,觉得也挺好用,就先试试pyquery。
这个库当然有很多用法,我只说我用的习惯的几个。
当然,首先想好自己爬的是什么,前面说了,我想要的是每项的价格跟标题。
额,解析有一个思路,叫从大div中选小项,就是说,我想要的是一页中每一项的价格和标题,就先找到每一项div的class名,再用迭代找到每一个div里的价格跟标题,有一点绕,举个例子。
先用F12看看页面。点element,再点最左边的箭头。再点选任一项,要点到div最外层框子上。就会出现如图。
文章图片
这个feed-block-ver就是大项,里面的feed-ver-title就是标题,z-highlight z-ellipsis就是价格,这两个就是小项.用for循环来迭代。
文章图片
为啥不直接找file('.feed-ver-title').text()?
因为所有内容会挤到一起,我不晓得怎么换的行。最后一行就是print(file('.feed-ver-title').text())的效果
文章图片
现在来说pyquery,我用的上的是file = pq(re.text),这句是用pq来解析网页
1.file('.feed-block-ver').items()是页面中所有class为feed-block-ver的div,就包含了div里的所有信息,items()是个生成器,用于遍历所有上述div
2.hr = item('a').attr('href')attr这个是获取a标签的属性,这里提取的是href
3.file('.feed-block-ver').eq(0) .text()eq(0)是file('.feed-block-ver')中的第一个,括号里是index,这个用于你要提取的信息,一般是没有特别的标识,class,p之类,只能通过数数来的,
4..text() 提取标签的文字信息,这个应该很简单了
另外还有一个事情值得注意,file('.feed-block-ver a')代表a前面有个空格表示.feed-block-ver下面的a标签
有了思路,后面提取就是很简单的事了,下一次讲讲提取的利器Infolite
【用python写爬虫--3.1解析网页+pyquery】.
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 今天写一些什么
- 涉毒患者(新诗)
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决