我正在尝试从以下链接中删除评论: https://www.kickstarter.com/projects/175927790/tupi-2d-animation-software-for-everyone/comments
使用代码:
urlcomments = url +str("/comments")
htmlcomments=urllib2.urlopen(urlcomments).read()
commentsoup=BeautifulSoup(htmlcomments, "html.parser")
commentable = soup.findAll('section',attrs={"class_":"js-could-have-comments js-project-comments-content js-project-content project-content"})
我已经尝试了urllib和urllib2,但它们都没有工作,findAll的结果是[]。 此外,我在html中尝试了不同的标签,div与类不兼容。
这段代码是课程的一部分,所以如果有人需要更多信息,请告诉我。 任何建议都会有所帮助。
提前致谢。
答案 0 :(得分:0)
问题是如果你想在findall中使用关键词args,你需要使用class_
,但是当你使用attr={}
时,不需要使用额外的' _&# 39;在班级的尾巴。'班级'是字典中的关键。所以只需将代码更改为:
commentable = soup.findAll('section',attrs={"class":"js-could-have-comments js-project-comments-content js-project-content project-content"})
除此之外,此页面由javascript呈现,因此,您无法通过urllib或请求获取javascript部分,我建议使用selenium。
搜索具有特定CSS类的标记非常有用,但是 CSS属性的名称“class”是Python中的保留字。 使用class作为关键字参数会给出语法错误。作为 美丽的汤4.1.2,你可以使用关键字搜索CSS类 参数类_:
soup.find_all("a", class_="sister")
soup.find_all("a", attrs={"class": "sister"})