前面用的是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
.
网友评论