2016-10-02 4 views
-2
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コードは、職業都市のリスト(その 'a href'タグ)を抜き取ってリストl1に格納するためのものです。しかし、ここで私は空白のリストを取得しています。同じxpathがChromeコンソールで動作していますが、このコードでは動作していません。 ..なぜこのPython Webはリクエストパッケージを使用したコードをスクレイピングしていないのですか?

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

+2

コードのどの部分が機能しませんか?あなたのコードの最後に 'print l1'を追加すると、あなたのリストにURLが入力されていることが示されます。 – Mangohero1

+0

こんにちは。理解できません。 Jupyter Qtconsoleでコードを実行すると、私には空リストが返されます! –

+0

それは変です。私はJupyter QtConsoleに慣れていませんが、それはそれと関係があるかもしれません。 – Mangohero1

答えて

-1

をそれに起因する私は、ブラウザとしての私のコードを作用させるためにヘッダを追加しましたが、それでも、それは働いていない私は、セレンwebdriverをを使用して同じことを達成するために試みたが、これも成功します。これがあなたのコンピュータから成功すると、使用されているライブラリの1つに問題がある可能性があります。

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() 
関連する問題