【发布时间】:2018-11-14 21:37:33
【问题描述】:
我对使用 Python 进行抓取还很陌生。 我正在尝试从 Exilead 上的查询中获取搜索结果的数量。在这个example我想得到“ 586,564 个结果”。
这是我正在运行的代码:
r = requests.get(URL, headers=headers)
tree = html.fromstring(r.text)
stats = tree.xpath('//[@id="searchform"]/div/div/small/text()')
这会返回一个空列表。
我直接从元素页面复制粘贴了 xPath。
作为替代方案,我尝试使用 Beautiful soup:
html = r.text
soup = BeautifulSoup(html, 'xml')
stats = soup.find('small', {'class': 'pull-right'}).text
返回属性错误:NoneType 对象没有属性文本。
当我检查 html 源代码时,我意识到我实际上在源代码中找不到我正在寻找的元素(结果的数量)。
有谁知道为什么会发生这种情况以及如何解决? 非常感谢!
【问题讨论】:
-
你试过没有 /text() 的 xpath 吗?然后获取innerHTML
标签: python xpath web-scraping beautifulsoup empty-list