我用两个不同的库编写了两个脚本; “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)