【问题标题】:Scraping Google Patents with requests only returns style and scripts tags使用请求抓取 Google 专利只会返回样式和脚本标签
【发布时间】:2017-06-07 17:49:44
【问题描述】:

我正在尝试使用以下代码抓取 Google 专利。

    url = 'https://patents.google.com/?q=usb'
    r = requests.get(url)
    html_doc = r.text
    soup = BeautifulSoup(html_doc)

但是当我尝试检查文档时,使用

    print(soup.prettify)

除了这个 https://pastebin.com/Xu81LdfE 之外,我什么也得不到。 我检查了请求状态,它返回 200。我哪里出错了?

【问题讨论】:

  • 改用google api?
  • 这几乎就像 Google 故意让他们的内容难以抓取......
  • 您为什么不使用搜索结果顶部显示的 CSV 下载链接? patents.google.com/xhr/…
  • CSV 下载的内容正好包含我需要的字段,但它显示的结果数量似乎有限。

标签: python web-scraping beautifulsoup python-requests


【解决方案1】:

该页面上的结果来自不同的网址: https://patents.google.com/xhr/query?url=q%3Dusb&exp=

因此,您可以执行 r.json(),而不是使用 BeautifulSoup,并在它创建的字典中找到您想要的内容。

【讨论】:

    【解决方案2】:

    数据不在 HTML 中,而是用 JavaScript 加载的。

    因此,beautifulsoup 不能刮。

    考虑使用官方 API,因为其他用途可能违反 Google 服务条款,届时他们可能会阻止您。

    【讨论】:

    • 感谢您的澄清!
    猜你喜欢
    • 2019-12-05
    • 1970-01-01
    • 2020-09-13
    • 2020-06-01
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    相关资源
    最近更新 更多