#1、拿到页面源代码
#2、利用bs4进行解析,拿到数据
from bs4 import BeautifulSoup
import csv
#读取存与文件中的源代码
f = open(f"./ydm.md", "r",encoding='utf-8')
url = f.readlines()
#设一个空字符串来装txt中的所有内容
url_u = ''
for i in url:
url_u += i
#将得到的数据写入csv文件
f = open(f"./caijia.csv", "w")
csvwriter = csv.writer(f)
#解析数据
#1、把页面源代码交给BeautifulSoup处理,生成bs对象, "html.parser":指定html解析器,作用为告诉bs这是html让它不要警告了
page = BeautifulSoup(url_u, "html.parser")
#2、从bs对象中解析数据
#find(标签,属性=值):找到第一个并返回
#find_all(标签,属性=值):找到所有并返回,class是python关键字,此时需要改为class_才不报错
#div = page.find("div", class_="tbl-body")
#等价于下面一句,可以避免class报错,其中attrs是一个字典,其中key为class,value为tbl-boby
div = page.find("div", attrs={"class": "tbl-body"})
#tr 是行的意思 td 是列的意思
#我们接下来找到所有的tr,然后做切片,从第一个开始切,所以第0个就刚好没了(废弃信息)
trs = div.find_all("tr")[1:]
for tr in trs: #此时tr为每一行数据
tds = tr.find_all("td") #每行中的每列
name = tds[0].text #.text 表示拿到被标签标记的内容
low = tds[1].text
aver = tds[2].text
high = tds[3].text
guge = tds[4].text
place = tds[5].text
danwei = tds[6].text
data = tds[7].text
csvwriter.writerow([name, low, aver, high, guge, place, danwei, data])
f.close()
print("over!")
每日爬虫3
于 2022-03-25 18:19:55 首次发布