为什么这个python web抓取代码使用请求包不起作用?

时间:2016-10-02 06:09:16

标签: python python-2.7 web-scraping python-requests

import lxml.html  
import requests  
l1=[]  
headers= {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'}  
r = requests.get('http://www.naukri.com/jobs-by-location', headers=headers)    
html = r.content  
root = lxml.html.fromstring(html)  
urls = root.xpath('//div[4]/div/div[1]/div/a/@href') #This xpath should give the list of cities(their links)  
l1.extend(urls)     

这个python代码用于抓取工作城市列表(他们的' href'标签)并将其存储在列表l1中。但在这里我得到一份空白名单。相同的xpath正在Chrome控制台上运行,但它在此代码中无效。由于我添加了标题以使我的代码充当浏览器但仍然无法正常工作..

http://i.stack.imgur.com/Xx1xW.jpg

1 个答案:

答案 0 :(得分:-1)

我尝试使用Selenium WebDriver实现相同目标,这也取得了成功。当您的计算机成功时,它可能是其中一个使用过的库中的问题。

import selenium.webdriver as driver

browser = driver.Chrome()
browser.get("http://www.naukri.com/jobs-by-location")
links = browser.find_elements_by_xpath("//div[4]/div/div[1]/div/a")
for link in links:
    href = link.get_attribute("href")
    print(href)
browser.quit()