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控制台上运行,但它在此代码中无效。由于我添加了标题以使我的代码充当浏览器但仍然无法正常工作..
答案 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()