met*_*rsk 1 html python xpath lxml custom-data-attribute
我试图从这个网站上抓取所有职业页面:http://wearemadeinny.com/find-a-job/
我尝试了下面的内容,但遗憾的是,当您点击其中一个公司页面时,只显示href:
from lxml import html
import requests
page = requests.get("http://wearemadeinny.com/find-a-job/")
tree = lxml.html.fromstring(page.text)
jobs = tree.xpath('//*[@id="venue-hiring"]/a/@href')
links = [x for x in jobs]
print links
Run Code Online (Sandbox Code Playgroud)
我注意到每个都<li>
包含html数据属性,其中包含作业页面URL.那么,是否有可能从每个数据中删除data-hiringurl属性<li>
.如果没有lxml和XPath选择器是他们的其他选择?
这是<li>
我想要从中获取的元素之一.我特意想拉数据-hiringurl ="http://www.admeld.com/about/jobs/"这个元素的xpath是//*[@ id ="v7"]
<li id="v7" data-vid="7" data-name="Admeld" data-address="230 Park Avenue South Suite 1201" data-lat="40.7378349" data-long="-73.9886703" data-url="http://www.admeld.com/" data-hiring="1" data-hiringurl="http://www.admeld.com/about/jobs/" data-whynyc="" data-category="1"><a href="#" class="list-digital">
<span class="venue-name">Admeld</span><br>
<span class="venue-address">230 Park Avenue South</span>
<br><span class="venue-hiring">We are hiring!</span>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)
这假设您已经拥有包含所需数据的页面内容.代码显示通过http请求获取它,如果它需要在浏览器中呈现,请参阅我的答案的后面部分如何获取它.
如果要获取属性中的所有值data-hiringurl
,请尝试XPath//@data-hiringurl
from lxml import html
import requests
url = "http://wearemadeinny.com/find-a-job/"
page = requests.get(url)
tree = html.fromstring(page.text) # corrected, used to be `lxml.html.fromstring`
xp = "//@data-hiringurl"
job_urls = tree.xpath(xp)
print print job_urls
Run Code Online (Sandbox Code Playgroud)
但我不确定,如果您提供的网址包含此类数据.我没有在那里找到它.
如果页面获取了您感兴趣的在客户端上动态呈现的内容,则需要提供浏览器上下文并让它在那里呈现.使用selenium
可以做的工作:
>>> from selenium import webdriver
>>> browser = webdriver.Firefox()
>>> url = "http://wearemadeinny.com/find-a-job/"
>>> browser.get(url)
>>> page = browser.page_source
>>> print page
Run Code Online (Sandbox Code Playgroud)
现在您拥有page
页面的可变内容,您可以继续进行lxml
上述操作.
注意:我不保证,您将在页面中获得预期的内容,我只知道,它以渲染的形式出现.但是如果你需要点击页面上的一些元素,填写一些文本,按下按钮,所有这些都可以通过browser
上面显示的实例完成- 只需阅读doc.
归档时间: |
|
查看次数: |
2676 次 |
最近记录: |