学会了网络爬虫发送请求后,我们可以获得一段目标的HTML代码,但是还没有把数据提取出来,接下来需要进行数据的清洗与组织。
for item in data:
result={
'title':item.get_test(),
'link':item.get('href')
}
print(result)
首先明确要提取的数据是标题和链接,标题在a标签中,提取标签的正文用get_text()方法;链接在a标签的href属性中,提取标签中的href属性用get()方法,在括号中指定要提取的属性数据,即get(‘href’)
需要使用的正则符合如下:
\d:匹配数字
+:匹配前一个字符1次或多次
在Python中调用正则表达式时使用re库,这个库不用安装,可以直接调用。可以用如下代码:
import requests
import re
from bs4 import BeautifulSoup
url = 'https://www.bilibili.com/video/BV1TC4y1N7dB/?spm_id_from=333.1007.0.0&vd_source=912d1bec97cad7dac820d2ba865f116a'
strhtml = requests.get(url)
#print(strhtml.text)
soup = BeautifulSoup(strhtml.text,'lxml')
data = soup.select('#main >div >div.mtop.firstMod.clearfix>div.centerBox>ul.newsList>li>a')
print(data)
for item in data:
result={
'title':item.get_test(),
'link':item.get('href')
'ID:'re.findall('\d+',item.get('href'))
}
print(result)