BeautifulSoup没有读取标记

时间:2016-10-31 01:31:56

标签: python web-scraping beautifulsoup

我正在尝试从以下链接中删除数据。:https://www.kickstarter.com/projects/298226251/subform-a-modern-tool-for-digital-product-designer/community  但在执行此代码时:

import urllib
from bs4 import BeautifulSoup
import xml.etree.ElementTree as ET

url= "https://www.kickstarter.com/projects/298226251/subform-a-modern-tool-for-digital-product-designer"

html=urllib.urlopen(url).read()
soup=BeautifulSoup(html,"html.parser")
urlcampaign = url+str("/community")
html=urllib.urlopen(url).read()
soup=BeautifulSoup(html, "html.parser")

table = soup.findAll('section',attrs={"class":"js-project-community-content js-project-content project-content"})
print table 

它返回:

[] or null

我检查了汤中的文字,发现了

<section class="hide js-project-community-content js-project-content project-content">
</section>

此部分标记包含大量页面内容,在抓取时不包含任何文本或数据,但网页显示的一切都非常好。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您希望肥皂找到此元素,您应该使用:

attrs={"class":"hide js-project-community-content js-project-content project-content"}
  

注意那里缺少的hide

如果要选择包含多个类的section标记,最好使用CSS选择器:

soup.select('section.js-project-community-content.js-project-content.project-content')

这样您就不必提供class属性的完整值。

答案 1 :(得分:0)

您创建urlcampaign = url+str("/community")但稍后使用url阅读页面,因此您无法从.../community

阅读