我正在尝试在我的django应用程序中使用xpath并且我一直收到错误
'Response' object has no attribute 'fromstring'
我不明白为什么。我已经研究过了,我看到的唯一一件事是人们有问题而不是字符串。继承我的代码
def panties():
from lxml import html
pan_url = 'http://www.panvideos.com'
html = requests.get(pan_url, headers=headers)
soup = BeautifulSoup(html.text, 'html5lib')
video_row = soup.find_all('div', {'class': 'video'})
def youtube_link(url):
youtube_page = requests.get(url, headers=headers)
tree = html.fromstring(youtube_page.content)
the_link = tree.xpath('//*[@id="wrapper"]/div[1]/div[2]/div[3]/div[1]/div[1]/h1')
return the_link
entries = [{'text': div.h4.text,
'href': div.a.get('href'),
'tube': youtube_link(div.a.get('href')),
} for div in video_row][:1]
return entries
任何帮助都会很棒。
编辑: 我跟随着搭便车的python指南,但是当我寻找答案的时候,我一直在寻找答案。继续看到人们使用etree而不是他使用它的方式
答案 0 :(得分:3)
不要嵌套这样的函数。取消嵌套您的功能,它将正常工作。
您定义html = requests.get(*)
返回的是响应对象。
在您的嵌套函数中,由于名称空间,您使用此html
而不是导入from lxml import html
的内容。