Python爬虫(Scrapy、Selenium、BeautifulSoup、Jupyter的使用)

一、常见的Python爬虫库

1. Requests:处理Http请求。

2. lxml:HTML和XML文件解。

3. BeautifulSoup:网络抓取框架,用于解析和提取HTML和XML数据,通常用于小数据量的处理,不支持异步操作,通常搭配lxml使用。

4. Scrapy:比较强大的爬虫框架,适用于复杂大型任务的爬取。

5. Selenium:模拟用户访问浏览器操作,适合处理JS渲染的网页。

6. re:正则表达式。

二、爬虫示例 1

示例描述: 爬取自己的csdn博客,统计每篇博客的访问量,制作一个柱状图,以访问量从大到小的方式显示。

1. 从“个人主页”爬取所有所有文章的链接

1.1 查看爬取规则

        打开个人主页,右键->检查:可以看到每篇文章的链接挂在哪个标签的哪个属性下( <article>标签下的<a>标签中的href属性值即为每篇文章的链接 )

1.2 提取网页中的所有文章ip

from bs4 import BeautifulSoup  #pip3 install beautifulsoup4
from urllib.request import urlopen

homePage_url="https://blog.youkuaiyun.com/beautiful77moon?type=blog"  #你的csdn个人主页链接
homePage_html=urlopen(homePage_url).read().decode('utf-8')
soup=BeautifulSoup(homePage_html,features='lxml')

#1.查找所有的<article>标签
li_articles=soup.find_all('article')

#2.取出所有<article>标签下<a>中的href属性值
article_urls=[]
for item in li_articles:
    link=item.find_all('a')
    article_urls.append(link[0]['href'])
    print(link[0]['href'])

        当页面内容过多时,需要下拉"加载",才能显示所有内容,所以需要一个工具模拟浏览器行为,自动滚动页面以加载更多内容。urllib无法处理这种情况,所以一般不建议使用 urllib。

1.3 使用selenium模拟浏览器。

 1.3.1  下载浏览器驱动(以Edge为例)

1. 查看自己的浏览器版本(点击浏览器右上角的三个点->设置->关于 Microsoft Edge)

2. 下载对应版本的驱动:Microsoft Edge WebDriver | Microsoft Edge Developer

3. 解压到一个目录下(这个目录后续会用到)

1.3.2  下载关键的依赖包

1. 浏览器模拟器selenium:pip install selenium --index-url https://pypi.tuna.tsinghua.edu.cn/simple

2. 处理网页的beautifulsoup:pip install beautifulsoup4 --index-url https://pypi.tuna.tsinghua.edu.cn/simple

1.3.3 代码

1. 模拟浏览器,实现“滑动鼠标”下拉页面以加载更多数据的行为

2. 从个人主页提取所有文章的url并打印

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.edge.options import Options
from bs4 import BeautifulSoup
import time

# 设置 Edge驱动 的路径
edge_driver_path = 'E:\SoftWare_work\download\edgedriver_win64\msedgedriver.exe'  # 替换为你本地的 EdgeDriver 路径

# 配置 Edge浏览器选项
edge_options = Options()
edge_options.add_argument("--headless&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值