选择器在两个库中显示不同的行为

时间:2017-08-22 09:43:08

标签: python python-3.x web-scraping beautifulsoup lxml

我用两个不同的库编写了两个脚本; “lxml”,“bs4”用于从黄页中删除主要30个名称中未列出的披萨店名称。当我运行包含“lxml”的刮刀时,在这种情况下是第一个,它无误地收获了名称。但是,当我运行使用bs4的第二个时,它既不会提取任何数据也不会抛出任何错误。为什么同一选择器的行为不同?

第一个:(工作一个)

import requests ; from lxml import html

response = requests.get("https://www.yellowpages.com/search?search_terms=pizza&geo_location_terms=San+Francisco%2C+CA").text
tree = html.fromstring(response)
for item in tree.cssselect("div.info a[itemprop=name].business-name"):
    print(item.text)

第二个:(不工作)

import requests ; from bs4 import BeautifulSoup

response = requests.get("https://www.yellowpages.com/search?search_terms=pizza&geo_location_terms=San+Francisco%2C+CA").text
soup = BeautifulSoup(response,"html.parser")
for item in soup.select("div.info a[itemprop=name].business-name"):
    print(item.text)

0 个答案:

没有答案