Python 3.x 刮削Yelp餐厅地址

Python 3.x 刮削Yelp餐厅地址,python-3.x,beautifulsoup,yelp,Python 3.x,Beautifulsoup,Yelp,我试图从Yelp那里提取餐厅的地址和邮政编码,但没有成功。我遇到的问题是无法提取包含邮政编码的第二个标记。下面的代码 返回地址而不是邮政编码。下图中包含2个线程标记,第一个包含地址,第二个包含邮政和城市 from bs4 import BeautifulSoup import requests url = 'https://www.yelp.com/search?cflt=restaurants&find_loc=Montreal, QC' response = requests.ge

我试图从Yelp那里提取餐厅的地址和邮政编码,但没有成功。我遇到的问题是无法提取包含邮政编码的第二个标记。下面的代码 返回地址而不是邮政编码。下图中包含2个线程标记,第一个包含地址,第二个包含邮政和城市

from bs4 import BeautifulSoup
import requests

url = 'https://www.yelp.com/search?cflt=restaurants&find_loc=Montreal, QC'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'lxml')
for item in soup.select('[class*=container]'):
  try:
    if item.find('h4'):
      name = item.find('h4').get_text()
      addr = item.find('address').get_text()
      print(name)
      print(addr)
      print('------------------')
  except Exception as e:
    raise e
    print('')
检查元件:


您可以尝试使用
find\u all

from bs4 import BeautifulSoup
import requests

url = 'https://www.yelp.com/search?cflt=restaurants&find_loc=Montreal, QC'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'lxml')
for item in soup.select('[class*=container]'):
  try:
    if item.find('h4'):
      name = item.find('h4').get_text()
      print(name)
      for addr in item.find_all('address'):
          print (addr.text, addr.next_sibling.text)
  except Exception as e:
    raise e
    print('')