由于今天用Pyhton做爬虫的时候,需要用上xpath,我已经用pip安装了lxml模块,结果引入的时候,显红报错,如下图:
我的环境:pyhton3.7.0 + lxml -4.4.1;
编辑器:PyCharm;
解决方法
原因其实也很简单,这是因为在python3.5之后的 lxm 模块l中不能再直接引入etree模块,虽然新版本无法直接”from lxml import etree“这样,但是,它只不过是换了一个办法引出 etree而已,具体如下:
import requests
from lxml import html
etree = html.etree
url = "https://movie.douban.com/cinema/nowplaying/chengdu/"
resp = requests.get(url).text
#print(resp)
lists = etree.HTML(resp)
cl = lists.xpath("//ul[@class='lists']")[0]
li = cl.xpath("./li")
for lis in li:
movie_name= lis.xpath("@data-title")[0]
movie_rep = lis.xpath("@data-score")[0]
movie_time = lis.xpath("@data-duration")[0]
print(movie_name + "-" + movie_rep + "-" + movie_time)
关于这里的xpath用法,我就不多说了,大家可以自行网上搜索!
总结:
以上这种方式就是Pyhton新版本中 lxml模块 中etree的使用方法,不过使用过程中发现有一些方法无法直接自动匹配提示,对新手入门不是很友好。
当然,你也可以直接更换低版本的Pyhton是可以直接解决这个问题的。