【问题标题】:Issue scraping website with bs4 (beautiful soup) python 2.7用bs4(美丽的汤)python 2.7问题抓取网站
【发布时间】:2020-07-08 01:20:27
【问题描述】:

我试图完成的是一个简单的python网络抓取脚本,用于谷歌趋势并在抓取课程时遇到问题

from bs4 import BeautifulSoup
import requests


results = requests.get("https://trends.google.com/trends/trendingsearches/daily?geo=US")
soup = BeautifulSoup(results.text, 'lxml')
keyword_list = soup.find_all('.details-top')
for keyword in keyword_list:
    print(keyword)

当打印 tag 我收到并清空类但是当我打印汤时我收到整个 HTML 文档。我的目标是打印出搜索页面https://trends.google.com/trends/trendingsearches/daily?geo=AU的每个“关键字”的文本

这有一个结果列表:

1. covid-19
2.Woolworths jobs

如果您使用谷歌开发者选项,请选择检查并将鼠标悬停在标题上,您将看到 div.details-top

如何打印每个标题的文本

【问题讨论】:

    标签: python-2.7 web-scraping beautifulsoup


    【解决方案1】:

    我可以看到从开发工具网络选项卡中的 API 调用动态检索数据。您可以向该 url 发出 xhr,然后在响应文本上使用正则表达式来解析查询标题。

    import requests, re
    from bs4 import BeautifulSoup as bs
    
    r = requests.get('https://trends.google.com/trends/api/dailytrends?hl=en-GB&tz=0&geo=AU&ns=15').text
    p = re.compile(r'"query":"(.*?)"')
    titles = p.findall(r)
    print(titles) # 2.7 use print titles
    

    【讨论】:

    • 我认为查询 var p 完成了我需要的一切,非常感谢。我什至不需要漂​​亮的汤*编辑:哈哈,我在 Linux 上安装了它,这就是我不需要导入的原因
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2021-03-30
    • 2019-05-05
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    相关资源
    最近更新 更多