python爬虫BeautifulSoup实战练习

本文介绍了使用Python的BeautifulSoup库进行网页抓取和解析的实战练习,涉及requests、lxml、re、matplotlib.pyplot和numpy等库。在实践中,作者提醒注意CSS选择器可能因请求源码差异导致的问题,并分享了源代码和交流邮箱。

python爬虫BeautifulSoup实战练习,爬取价格并显示价格分布曲线

知识点介绍

涉及到的库如下:
requests库用于网页访问
bs4的BeautifulSoup进行网页解析
lxml第三方网页解析库,也可以使用python自带html.parser
re正则表达式用于查找提取字符
matplotlib.pyplot用于绘图
numpy用于辅助绘图处理对应数据

中途问题注意:使用CSS选择器选择获取了元素路径,但是带入BeautifulSoup的select方法中后始终获取不到数据,核对发现request获取的网页源码和浏览器获取的不一样,会导致CSS选择器选择的路径不正确,需要手工核对。

效果展示

在这里插入图片描述在这里插入图片描述

源代码

import requests
from bs4 import BeautifulSoup
import lxml
import re
import matplotlib.pyplot as plt
import numpy as np

def GetFruitInfo(pageCnt=3):
    retInfo=[]
    #来源地址,某些网站不指定来源地址不允许访问
    my_referer = r'https://www.lvguo.net/baojia/area/7000/'
    #需要提取信息的多个页面,用for循环生成
    urlList = ["https://www.lvguo.net/baojia/area/7006/"]
    for i in range(2,pageCnt+1):
        urlList.append("https://www.lvguo.net/baojia/area/7006/"+"t{0}".format(i))
    #print(urlList)
    for url in urlList:
        #url="https://www.lvguo.net/baojia/area/7006/t3"
        #调用requests的get方法获取网页源代码
        webData = requests.get(url,headers={
   
   'referer' : my_referer}).text
        #print(webData)
        #建立BeautifulSoup解析网页,这里调用的是python自带的解析器"html.parser",也可以用第三方的解析器"lxml"
        soup = BeautifulSoup(webData,"html.parser")
        #调用select方法并指定元素,用浏览器CSS选择器确定
        list=soup.select(".bjtbl > tr")
        for info in list[2:]:
            #获悉信息ID
            #查找第0个td标签的属性,提取出来
            infoId=info.select("td"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值