find()与find_all()的区别
首先,请看举例中括号里的class_,这里有一个下划线,是为了和python语法中的类 class区分,避免程序冲突。当然,除了用class属性去匹配,还可以使用其它属性,比如style属性等。
其次,括号中的参数:标签和属性可以任选其一,也可以两个一起使用,这取决于我们要在网页中提取的内容。
如果只用其中一个参数就可以准确定位的话,就只用一个参数检索。如果需要标签和属性同时满足的情况下才能准确定位到我们想找的内容,那就两个参数一起使用。
Tag对象的三种常用属性与方法
BeautifulSoup提取信息的流程
练习1 博客爬虫
你需要爬取的是博客【人人都是蜘蛛侠】中,《未来已来(四)——Python学习进阶图谱》的所有文章评论,并且打印。
文章URL:
https://wordpress-edu-3autumn.localprod.oc.forchange.cn/all-about-the-future_04/
from bs4 import BeautifulSoup
url='wordpress-edu-3autumn.localprod.oc.forchange.cn/all-about-the-future_04/'
for i in range(300):#抓取前300页的所有评论
r=requests.get(url+str(i))
r.raise_for_status()
r.encoding=r.apparent_encoding
soup=BeautifulSoup(r.text,'html.parser')
items=soup.find_all('div',class_=