我尝试使用Python中的lxml来抓取网站上的特定元素。您可以在下面找到我的代码,但没有输出。
from lxml import html
webpage = 'http://www.funda.nl/koop/heel-nederland/'
page = requests.get(webpage)
tree = html.fromstring(page.content)
content = '//*[@id="content"]/form/div[2]/div[5]/div/a[8]/text()'
content = str(tree.xpath(content))
print content
答案 0 :(得分:1)
看起来你试图报废的网站不喜欢被废弃。他们利用各种技术来检测请求是来自合法用户,还是来自机器人和阻止访问,如果他们认为它来自机器人。这就是为什么你的xpath找不到任何东西的原因,以及为什么你应该重新考虑你正在做的事情。
如果您决定继续,那么欺骗这个特定网站的最简单方法似乎是为您的请求添加Cookie。
首先,使用真正的浏览器获取cookie字符串:
heel-nederland/
的请求并点击然后,修改您的程序以使用这些cookie:
import requests
from lxml import html
webpage = 'http://www.funda.nl/koop/heel-nederland/'
headers = {
'Cookie': '<string copied from browser>'
}
page = requests.get(webpage, headers=headers)
tree = html.fromstring(page.content)
selector = '//*[@id="content"]/form/div[2]/div[5]/div/a[8]/text()'
content = str(tree.xpath(selector))
print content