使用lxml爬取网页的一些心得

2018-11-22  本文已影响0人  waterchinap

准备工作

一般是用requests获取页面内容。

def get_page(url):
    headers = {'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36'}
    re = requests.get(url, headers=headers)
    html = re.text
    return html

获取一个树对象

tree = etree.HTML(page)

对树对象进行操作

etree.html返回的是一个elementtree。对这个树进行操作的文档很少,还没有仔细研究。
对这个树进行XPATH选取操作后会形成一个列表。列表的每一项是一个element对象。
element对象可以进行如何操作:

etree.tostring(tree)
#to a string
etree.ElementTree(tree).write()
#output as a file

这两种操作基本上可以进行网页内容的爬取了。现在还没有搞明白的是编码的问题,为什么爬取下来的HTML文件中文无法在编辑器里正确显示(在浏览器里是正常的)。

已经找到解决办法了,和tostring()方法一样,就是加一个ENCODING=“UTF-8”的参数就可以了。

上一篇 下一篇

猜你喜欢

热点阅读