Python XPath from URL返回空lis

2024-10-05 11:43:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用XPath访问以下URL的元素: http://www.booking.com/searchresults.html?dest_id=2400&dest_type=region&offset=288

我要找的具体元素是Div类“sr\u item\u link\u to\u villas”。我一直在使用以下XPath来尝试访问它(在本例中,我尝试访问第二个列表,但是完整的脚本在每个列表中循环),但它返回一个空列表:

//*[@id="hotellist_inner"]/*[contains(@class,"sr_item")][2]//*[contains(@class,"sr_item_link_to_villas ")]

完整代码为:

url='http://www.booking.com/searchresults.html?dest_id=2400&dest_type=region&offset=288'
page = parse(url).getroot()
pathstr='//*[@id="hotellist_inner"]/*[contains(@class,"sr_item")][2]//*[contains(@class,"sr_item_link_to_villas ")]'
content=page.xpath(pathstr)

Tags: toidhttp元素列表wwwlinkitem
1条回答
网友
1楼 · 发布于 2024-10-05 11:43:01

下面的代码可以解决您的问题。必须为get data添加头值。你知道吗

    import urllib2
    from lxml import etree
    from lxml.html import tostring,fromstring

    def get_HTML(url):
        header={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0","Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Connection": "keep-alive"}
        req=urllib2.Request(url,None,header)
        return urllib2.urlopen(req).read()

    url="http://www.booking.com/searchresults.html?dest_id=2400&dest_type=region&offset=288"

    read = get_HTML(url)
    tree = etree.HTML(read)    
    data = tree.xpath("//div[@class='sr_item_link_to_villas ']/a/text()");
    print data

相关问题 更多 >

    热门问题