我正在尝试从以下链接中删除数据。: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>
此部分标记包含大量页面内容,在抓取时不包含任何文本或数据,但网页显示的一切都非常好。
任何帮助将不胜感激。
答案 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