用xpath遇到报错:'NoneType' object has no attribute 'xpath'
来源:2-3 xpath及html基础知识

闪闪一年
2020-02-18
老师,我用xpath试着在豆瓣上取一个电影名字,但是遇到了报错,代码如下:
import requests
from lxml import etree
url = 'https://movie.douban.com/subject/30252495/?tag=%E7%83%AD%E9%97%A8&from=gaia'
data = requests.get(url).text
s=etree.HTML(data)
title=s.xpath('//*[@id="content"]/h1/span[1]/text()')
print(title)
报错信息如下:
File "<ipython-input-11-114783aa16ff>", line 8, in <module>
title=s.xpath('//*[@id="content"]/h1/span[1]/text()')
AttributeError: 'NoneType' object has no attribute 'xpath'
这是什么原因?
写回答
1回答
-
不同的网站有不同程度的反爬机制,你可以打印下requests请求过来的内容。
请求豆瓣的网页需要加上请求头,示例代码:
data = requests.get(url, headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' }).text
添加 User-Agent表示将你的请求伪装成浏览器请求
012020-02-19
相似问题