栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

爬虫项目——BS4练手(1)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

爬虫项目——BS4练手(1)

本文爬取目标网页表格中的内容,提取(品名,最高价,最低价,均价)信息,导入csv文件中

前期准备:
工具:Spyder
引用的库:requests,bs4中的BeautifulSoup,csv

1.获取目标网址信息

url = "http://www.whbsz.com.cn/"
resp = requests.get(url)

2.解析数据,将页面源代码交给BeautifulSoup进行处理,生成bs对象

page = BeautifulSoup(resp.text,"html.parser")

3.用find或find_all去查找目标信息,进行定位

  • find(标签,属性值):寻找一个
  • find_all(标签,属性值):寻找所有

    查看目标网页背后的源码,定位到需要的信息块,这里选取定位到

td = page.find("td",attrs={"id":"PriceShuCai1"})

此时我就拿到内容这里面的内容了,
此时,我在获取得到里面的所有行

trs = td.find_all("tr")

我们知道,我们需要的信息,正是处于每一行里相应列处
此时分别取出每行相应的列值及时我们需要的资料

for tr in trs:
    tds = tr.find_all("td")  # 拿到每行中的所有td
    name = tds[0].text
    high_price = tds[2].text
    low_price  = tds[3].text
    mean_price = tds[4].text

注意:我们从源代码里发现,每行中的第二列是空的,所有跳过tds[1]
现在,我们所有的值取去完毕,将资料存入csv中,

import csv
f = open("蔬菜价.csv",mode="w",encoding="utf-8")
csvwriter = csv.writer(f)

将资料写入csvwriter中即可,

完整代码如下:

# -*- coding: utf-8 -*-
"""
Created on Sun Oct  3 10:39:53 2021

@author: yingzi

E-mail:guotaomath@163.com
"""
import requests
from bs4 import BeautifulSoup
import csv

url = "http://www.whbsz.com.cn/"
resp = requests.get(url)

f = open("蔬菜价.csv",mode="w",encoding="utf-8")
csvwriter = csv.writer(f)


# 解析数据
# 1.把页面源代码交给BeautifulSoup进行处理,生成bs对象
page = BeautifulSoup(resp.text,"html.parser")
# 2.从bs对象中查找数据
td = page.find("td",attrs={"id":"PriceShuCai1"})
# 拿到所有数据行
trs = td.find_all("tr")
for tr in trs:
    tds = tr.find_all("td")  # 拿到每行中的所有td
    name = tds[0].text
    high_price = tds[2].text
    low_price  = tds[3].text
    mean_price = tds[4].text
    csvwriter.writerow([name,high_price,low_price,mean_price])
print("over!!!")

结果如下:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号