繁体   English   中英

BeautifulSoup找不到标签

[英]BeautifulSoup can't find tags

我试图从网站上抓取数据,但是find()方法找不到标签。以下是我的代码:

import urllib2 
from bs4 import BeautifulSoup

url='http://www.jbhifi.com.au/computers/laptop-notebook/'
req=urllib2.Request(url,headers={'User-Agent':'Mozilla/5.0 (Windows NT 5.1)          AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36'})
webpage=urllib2.urlopen(req)
content=webpage.read()
soup=BeautifulSoup(content)
x=soup.find("div",attrs={'id':'content-two'})
print x  #return None

然后,我发现只有HTML的漂亮解析器头

head=soup.find('head')
print head # print out content within <head>tag
body=soup.find('body')
print body # Print None

我真的很困惑。 我之前几次使用beautifulsoup。这是我第一次遇到这个问题。 有人知道如何解决此问题吗? 谢谢。

问题已经解决。 我卸载了beautifulsoup 4.2,然后安装了beautifulsoup 4.3。 该代码现在可以使用。

该代码运行良好。 您对“ x”将返回None的假设是错误的。

(Pdb) print x is None
False
(Pdb) print str(x)[:100]
<div id="content-two" style="float:right;width:828px;">
<div style="padding-bottom:7px;"><a href="ht

您可以检查。

确保要解析的代码在页面上

view-source:chrome-extension://http://www.jbhifi.com.au/computers/laptop-notebook/

如果不存在,则用javascript创建html代码。

这个案例。 使用硒或查找使用javascript生成html代码的部分。


有两种方法可以在JavaScript中生成HTML代码。

最前一页的方式,生成HTML代码的JavaScript =>推荐 + BS4 + 请求

第二种方法,在服务器上接收数据后,用javascript生成html代码=>推荐bs4 + 请求

暂无
暂无

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

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