繁体   English   中英

无法使用请求模块从网站上抓取啤酒厂的名称

[英]Can't scrape breweries' names from a website using the requests module

我创建了一个脚本来使用请求模块从该网站收集啤酒厂的名称,但是当我执行该脚本时,它最终什么也得不到。 我在页面源代码中以及通常通过开发工具找到的任何未记录的 API 中查找标题,但没有找到。

import requests
from bs4 import BeautifulSoup

link = "https://www.brewersassociation.org/directories/breweries/"

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
}

res = requests.get(link,headers=headers)
soup = BeautifulSoup(res.text,"html.parser")
for item in soup.select(".company-content > h3[itemprop='name']"):
    print(item.text)

你可以试试:

import requests
import pandas as pd


url = 'https://www.brewersassociation.org/wp-content/themes/ba2019/json-store/breweries/breweries.json'

data = requests.get(url).json()

df = pd.DataFrame(data)
df = pd.concat([df, df.pop('BillingAddress').apply(pd.Series, dtype=object)], axis=1)
df.pop('attributes')

# print sample data, total length should be 26802 breweries:
print(df.head().to_markdown(index=False))

印刷:

ID 名称 家长 电话 网站 Brewery_Type__c Is_Craft_Brewery__c Voting_Member__c Membership_Record_Item__c Membership_Record_Paid_Through_Date__c Membership_Record_Status__c Account_Badges__c 城市 国家 国家代码 地理编码准确性 纬度 经度 邮政编码 state 州代码 街道
0014x000012jyoHAAQ 规划中的啤酒厂 - 蒙特雷 (811) 244-8078 规划中的啤酒厂 错误的 错误的 蒙特雷 墨西哥 MX 堵塞 25.6444 -100.275 64850 图坎 362
0014x000012jyoJAAQ Sekinoichi-shuzo Co.,Ltd/Iwai Brewery +81-191-21-1144 www.sekinoichi.co.jp 酒馆 错误的 错误的 一关市 日本 J.P 地址 38.9314 141.132 021-0885 5-42 田村町
0014x000012jyoKAAQ 塞尔比(米德尔伯勒)啤酒厂有限公司 01757 702826 错误的 错误的 塞尔比 英国 国标 堵塞 53.7871 -1.07141 YO8 3LL 131米尔盖特
0014x000012jyoLAAQ 森德罗酿酒公司 www.senderobrewing.com 规划中的啤酒厂 错误的 错误的 啤酒厂会员资格 2019-10-31 已到期 圣佩德罗苏拉 洪都拉斯 氢氮 城市 15.5039 -88.0157 21102 洛斯阿尔卑斯,麦凯大道
0014x000012jyoMAAQ Ser Bhum 小型酿酒厂 错误的 错误的 啤酒厂会员资格 2017-08-31 已到期 廷布 不丹 英国电信 洪措洪措

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM