Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

PyQuery 中循环获取一段内容

$
0
0

最近在捣腾爬虫,比较习惯用 PyQuery 这个模块来解析 HTML 提取内容。简单看了一下文档,发现国内有些文档的写法是错的,自己试验了一下。

首先,循环一段内容比如循环我博客的文章标题,按照别人的文章来操作了一下发现是错误的。代码如下

import requests from pyquery import PyQuery as pq from lxml import etree try: response = requests.get("http://www.d0cs.org/", timeout=5).text doc = pq(etree.fromstring(response)) print type(doc('div#post-title>h1>a').text()) except Exception, e: print e

打印结果得到 <type 'str'> 类型,说明提取标题的时候实则是 str 类型,并不是 list 类型或者 PyQuery 对象,如果循环输出的话得不到我要的结果。大部分在一些 CSDN 博客之类的文章基本是这样。

而正确的写法是这样的

import requests from pyquery import PyQuery as pq from lxml import etree try: response = requests.get("http://www.d0cs.org/", timeout=5).text doc = pq(etree.fromstring(response)) for title in doc('div#post-title>h1>a').items(): print title.text() + '\n' except Exception, e: print e

这是查阅了官方 API 文档后操作的,不懂英文,还是要去看官方文档,起码有个翻译在。少走很多弯路的!

关于 PyQuery.items() 的文档


Viewing all articles
Browse latest Browse all 9596

Trending Articles