【问题标题】:Requests, BeautifulSoup, None请求,BeautifulSoup,无
【发布时间】:2014-07-13 21:27:04
【问题描述】:

由于某种原因,我似乎无法找到此代码打印“无”的原因。我直接从 HTML 复制/粘贴了 id ...提前致谢

import bs4
import json
import requests

URL = 'http://hypem.com/popular'

html = requests.get(URL).text
soup = bs4.BeautifulSoup(html)

print soup.find(id="displayList-data")

由于某种原因,当我从“请求”更改为“urllib2”时它起作用了

import bs4
import json
import urllib2

URL = 'http://hypem.com/popular/'

html = urllib2.urlopen(URL)
soup = bs4.BeautifulSoup(html)
data = soup.find(id="displayList-data")

print data

【问题讨论】:

  • print html 并在其中找到displayList-data。如果没有displayList-data,那么页面使用 javascript 加载页面,你还有很多工作要做。
  • 我运行这段代码,我得到了文本 - <script> 标签,里面有 JSON 数据。
  • 当我打印 html 时,我可以找到“displayList-data”。但是当我打印汤时,我找不到“displayList-data”......我真的不明白。也许 beaucoup 它在脚本标签之间?
  • @alecxe 在那里,你忘记了“”,搜索 id="displayList-data"

标签: python beautifulsoup python-requests


【解决方案1】:

您粘贴的代码有效。但是,我确实怀疑您已经修改了与您在本地测试的代码相比粘贴的代码,因为None 听起来就像您将数据直接输入到您正在打印的内容时返回的内容 json.loads .而是提取标签的内容,因为find(id="...") 的文本表示包括<script> 标签。

>>> json.loads(soup.find(id='displayList-data').text)
{u'page_cur': u'/popular', u'title': u'Popular MP3 & Mus ....

【讨论】:

  • 这不起作用:S,我得到 'NoneType' 对象没有属性 'text'
  • 也许你安装了一个糟糕的 bs4 版本,尝试更新 pip 或重新下载它。它适用于 pip 的当前版本以及此处站点提供的 HTML。
猜你喜欢
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
相关资源
最近更新 更多