【问题标题】:scrape Url and text from website using lxml python使用 lxml python 从网站上抓取 URL 和文本
【发布时间】:2017-01-05 23:05:37
【问题描述】:

我对 lxml 和 xpaths 了解不多,我想学习如何从网站上抓取数据。当我运行这段代码时,我没有得到任何结果,也不知道为什么。请帮我解决它。

代码在这里

from lxml import html
import requests
pageLen=str(100)
page = requests.get('http://www.yellowpages.com/search?search_terms=lawyer&geo_location_terms=usa&page=2')
print(page)
tree = html.fromstring(page.content)
#phoneNumber = tree.xpath('//span[@class="c411Phone"]/text()')
Link=tree.xpath('//div[@class="info"]/a/@href')
Bname=tree.xpath('//a[@class="business-name"]/text()')
print(Bussiness_names)
print(Bname)

HTML 代码

【问题讨论】:

标签: python web-scraping lxml


【解决方案1】:

谢谢@Abd Azrad。您的解决方案对我帮助很大。

你能进一步指导我吗?我很困惑如何处理不一致的数据? 有时,缺少邮政地址,有时缺少位置。我只想忽略那些不符合我要求的数据。
page = requests.get('http://www.yellowpages.com/search?search_terms=%s&geo_location_terms=%s&page=%s'%("lawyer","toronot","2")) tree = html.fromstring(page.text) bus_names=tree.xpath('//a[@class="business-name"]/text()') print bus_names ##bus_url=tree.xpath('//a[@class="business-name"]/href()') ##print bus_url street_ad=tree.xpath('//span[@class="street-address"]/text()') print(street_ad) loc=tree.xpath('//span[@class="locality"]/text()') print(loc) postal=tree.xpath('//span[@itemprop="postalCode"]/text()') print(postal) contact=tree.xpath('//div[@class="phones phone primary"]/text()') print(contact)

通过这种方式,我得到了列表,但我未能跟踪数据,因为列表长度不同。有没有办法获取列表中每个人的数据以及二维列表形式的所有数据 [[person_one_name,person_one_address],[person_two_name,person_two_contact]]?

【讨论】:

【解决方案2】:

又快又脏:

from lxml import html
import requests

url = 'http://www.yellowpages.com/search?search_terms=lawyer&geo_location_terms=usa&page=2'
page = requests.get(url)
tree = html.fromstring(page.text)
tree.make_links_absolute(url)
for business in tree.xpath('//a[@class="business-name"]'):
  print business.attrib['href'], business.text

【讨论】:

  • 将第二个脚本更改为 python 2.7
  • 你能告诉我如何获取网址吗?
猜你喜欢
  • 2018-11-12
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 2018-09-01
相关资源
最近更新 更多