【发布时间】:2019-07-15 20:27:04
【问题描述】:
我在 python 中创建了一个脚本来从网页中获取邻居的名称。我使用requests 库和re 模块从该站点的某些脚本标记中解析内容。当我运行脚本时,我以正确的方式获得邻居的名字。但是,问题是我使用这条线 if not item.startswith("NY:"):continue 来消除该页面中不需要的结果。我不想使用这个硬编码部分NY: 来做这个把戏。
我试过了:
import re
import json
import requests
link = 'https://www.yelp.com/search?find_desc=Restaurants&find_loc=New%20York%2C%20NY&start=1'
resp = requests.get(link,headers={"User-Agent":"Mozilla/5.0"})
data = json.loads(re.findall(r'data-hypernova-key[^{]+(.*)--></script>',resp.text)[0])
items = data['searchPageProps']['filterPanelProps']['filterInfoMap']
for item in items:
if not item.startswith("NY:"):continue
print(item)
我得到的结果(期望的结果):
NY:New_York:Brooklyn:Mill_Basin
NY:New_York:Bronx:Edenwald
NY:New_York:Staten_Island:Stapleton
如果我不使用这一行 if not item.startswith("NY:"):continue,结果类似于:
rating
NY:New_York:Brooklyn:Mill_Basin
NY:New_York:Bronx:Edenwald
NY:New_York:Staten_Island:Stapleton
NY:New_York:Staten_Island:Lighthouse_Hill
NY:New_York:Queens:Rochdale
NY:New_York:Queens:Pomonok
BusinessParking.validated
food_court
NY:New_York:Queens:Little_Neck
底线是我希望一切从NY:New_York: 开始。我所说的不需要的结果是rating、BusinessParking.validated、food_court 等等。
如何在不使用脚本中任何硬编码的搜索部分的情况下获取邻居?
【问题讨论】:
-
所以你想要
NY:New_York:Bronx:Edenwald而不是NY:New_York:Staten_Island:Lighthouse_Hill? -
我希望一切都以
NY:New_York:开始
标签: python python-3.x web-scraping