【问题标题】:Scraping table contents using Requests and Beautiful Soup使用 Requests 和 Beautiful Soup 抓取表格内容
【发布时间】:2015-04-07 01:32:19
【问题描述】:

Python/Webscraping 初学者,请多多包涵。我正在尝试从this URL 获取所有产品名称

不幸的是,当我运行我的代码时,什么都没有返回。相同的代码适用于大多数其他网站,但我尝试了数十种变体,但无法使其适用于该网站。

这个 URL 甚至可以使用 Bsoup 抓取吗?任何反馈都表示赞赏。

import bs4
import requests

url = 'http://www.rakuten.com/sr/searchresults.aspx?qu'
payload = {'q': 'Python',}

r = requests.get(url % payload)

soup = bs4.BeautifulSoup(r.text)
titles = [a.attrs.get('href') for a in soup.findAll('div.productscontainer a[href^=/prod]')]

for t in titles:
    print(t)





import bs4
import requests

url = 'http://www.rakuten.com/sr/searchresults.aspx?qu'

r = requests.get(url)

soup = bs4.BeautifulSoup(r.text)
titles = [td.text for td in soup.findAll('td', attrs={'class': 'searchlist'})]

for t in titles:
    print(t)

如果这种格式是正确的,那么 JS 肯定会阻止我拉任何东西吗?

【问题讨论】:

  • 您可以编辑问题中的代码,无需将其放入评论中。

标签: python web-scraping beautifulsoup screen-scraping python-requests


【解决方案1】:

首先,您的字符串格式可能是错误的。看看这个:

>>> url = 'http://www.rakuten.com/sr/searchresults.aspx?qu'
>>> payload = {'q': 'Python',}
>>> url % payload
'http://www.rakuten.com/sr/searchresults.aspx?qu'

我猜这不是你想要的。你应该看看字符串格式化在 Python 中是如何工作的,然后想出一个正确的方法来构造你的 URL。

其次,“搜索引擎”大量使用 JavaScript。您可能无法仅通过查看最初检索到的 HTML 内容来检索您想要的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2020-10-11
    • 1970-01-01
    相关资源
    最近更新 更多