python爬虫案例学习&&分析

10 篇文章 3 订阅
订阅专栏

python爬虫案例分析

声明:本文仅供学习参考,请勿用作其他用途

0x01.什么是python爬虫

就是一段模拟浏览器向目标站点发起请求的自动抓取互联网站点资源的python程序

在这里插入图片描述

0x02.声明

1.本文仅供学习使用,请勿用作其他非法用途

0x03.python爬虫案例

3-1.python爬虫自动爬取小说
<1>.爬取单章小说

在编写爬取代码之前,我们先来了解,解析数据的三种方式: css xpath re
什么时候使用xpath和css;当得到数据,有标签的时候用css,没有办法直接对于字符串数据进行提取
1.css选择器:根据标签属性提取数据
2.xpath:根据标签节点提取数据
3.re:当你无法用标签获取数据的时候,就用正则,可以直接对字符串数据进行提取

CSS&&Xpath

在这里插入图片描述

re:匹配相应字段内容 ----->re.findall(‘<li><a href=“(.*?)”>.*?</li>’,response.text)

在这里插入图片描述

pycharm上展示

import requests  #是一个原生的 HTTP 库,用来发送和构造请求
import parsel #一个强大的解析库,包含了css,Xpath,以及re正则数据解析的功能


url = "https://www.biquge9.com/book/1266/3.html"  #将XXX小说网的某个章节以字符串形式存入变量中
response = requests.get(url) #将上面的url变量放入,构造的get请求中,调用requests库中的get方法,并将响应存入变量response中
response.encoding = "utf-8"  #将响应的数据进行转码,主要是中文字符,所以用了utf-8
selector = parsel.Selector(response.text) #将response.text 中字符串数据,转成可解析的对象
title = selector.css('h1.wap_none ::text').get() #css选择器解析获取小说每章的标题," ::text " 获取相应标签中的文本
content_list = selector.css('#chaptercontent::text').getall() #css选择器解析小说本章所有正文内容
content = '\n'.join(content_list) #将小说的本章所有正文内容添加进content变量中,默认采取换行添加-> \n
print(title+'\n'+content)

效果 1 看这
在这里插入图片描述

保存数据内容到文件中如下

import requests  #是一个原生的 HTTP 库,用来发送和构造请求
import parsel #一个强大的解析库,包含了css,Xpath,以及re正则数据解析的功能
import os   #该库提供通用的、基本的操作系统交互功能

url = "https://www.XXX.com/book/XXX/3.html"  #将XXX小说网的某个章节以字符串形式存入变量中
response = requests.get(url) #将上面的url变量放入,构造的get请求中,调用requests库中的get方法,并将响应存入变量response中
response.encoding = "utf-8"  #将响应的数据进行转码,主要是中文字符,所以用了utf-8
selector = parsel.Selector(response.text) #将response.text 中字符串数据,转成可解析的对象
book_name = selector.css('.path > a:nth-child(2) ::text').get() #css选择器解析获取小说的书名" ::text " 获取相应标签中的文本
title = selector.css('h1.wap_none ::text').get() #css选择器解析获取小说每章的标题," ::text " 获取相应标签中的文本
content_list = selector.css('#chaptercontent::text').getall() #css选择器解析小说本章所有正文内容
content = '\n'.join(content_list) #将小说的本章所有正文内容添加进上面的content变量中,默认采取换行添加-> \n 
filename = f'D:\\XXX\\{book_name}' # 建立一个字符串变量来存放文件夹的名称,f是format函数的缩写,用于格式化输出,方便自动化创建目录,路径中加“\\”,是防止出现转义字符出现
if not os.path.exists(filename):  #利用os库中的path.exists方法判断上面的文件夹存不存在
    os.mkdir(filename)  #不存在则创建上面的文件夹
with open(f'D:\\XXX\\{book_name}\\{title}.txt' ,mode = 'w',encoding = 'utf-8') as f:#保存文件到上面自动创建的文件夹下,mode = “w”写入数据
    f.write(title)  #txt文件中写入章节的标题
    f.write('\n')   #换行
    f.write(content)  #写入正文
    print("正在保存:", title) # 展示当前的操作

效果 2 展示
在这里插入图片描述在这里插入图片描述

<2>.爬取整本小说
import requests
import os
import parsel
import re

dir_url = "https://www.XXX.com/XXX/1266/"  #小说的目录页的Url
headers = {
    'User-Agent':'XXX'
}  #加个伪装的UA
response = requests.get(dir_url,headers)  
response.encoding = "utf-8"
link = re.findall('<dd><a href ="(.*?)">.*?</a></dd>', response.text)
Book_name = re.findall('<meta property="og:title" content="(.*?)"/>', response.text)[0]
filename = f'D:\\ARTICLE\\{Book_name}'
if not os.path.exists(filename):
    os.mkdir(filename)

for index in link:
    index_url = "https://www.biquge9.com" + index  # Url拼接
    response = requests.get(index_url,headers)
    response.encoding = "utf-8"
    selector = parsel.Selector(response.text)
    title = selector.css('h1.wap_none ::text').get()
    content_list = selector.css('#chaptercontent::text').getall()
    content = '\n'.join(content_list)
    with open(f'D:\\ARTICLE\\{Book_name}\\{Book_name}.txt', mode='a', encoding='utf-8') as f:
        f.write(title)
        f.write('\n')
        f.write(content)
        f.write('\n')
    print("正在保存:", title)

注意:数据解析中的标签样式(标题,正文),每个小说网页都不同,需要根据具体情况进行填入
3-2.python爬虫爬取单网页图片资源
实现原理:请求网页中源码,并将源码中的<img>标签内图片URL链接通过正则保存到一个列表内,后面再通过请求这个图片URL,将请求的响应通过二进制形式保存进已随机数命名的jpg格式文件内
源码如下
# -*- coding:utf-8 -*-
# 请求网页
import os
import time
import random
import requests
import re

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0'}

response = requests.get('https://XXXX.com/XXXX.html', headers=headers)
html = response.text

urls = re.findall(r'<img[^>]+src=[\'"]([^\'"]+)[\'"][^>]*>', html) # 正则表达式解析网页图片资源
urls = [item for item in urls if not re.match(r"^data", item)]

# 保存图片
for url in urls:
    time.sleep(1)  # 延时1秒
    # 图片名字
    random_str = ''.join(random.choices('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', k=6)) # 生成一个长度为6的随机字符串,包含大小写字母和数字
    response = requests.get(url, headers=headers)
    with open(f"images/{random_str}.jpg", 'wb') as f:  # 以2进制形式写入文件名
        f.write(response.content)
python数据分析实例:利用python爬虫获取数据_爬虫数据采集实例
m0_60608008的博客
04-12 678
学习python中有任何困难不懂的可以微信扫描下方CSDN官方认证二维码加入python交流学习多多交流问题,互帮互助,这里有不错的学习教程和开发工具。👉[[CSDN大礼包:《python安装包&全套学习资料》免费分享]]安全链接,放心点击。
python数据分析实例:利用爬虫获取数据
weixin_55154866的博客
03-24 4370
我们在工作中用到网络上发布的各种信息,如果用搜索引擎查找并整理,需要花费大量时间,现在python能够帮助我们,使用爬虫技术,提高数据查找和整理的效率。我们来找一个爬虫的案例——抓取求职招聘类网站中的数据。使用环境:win10+python3+Juypter Notebook。
图解爬虫,用几个最简单的例子带你入门Python爬虫
ZackSock的博客
11-26 9075
一、前言 爬虫一直是Python的一大应用场景,差不多每门语言都可以写爬虫,但是程序员们却独爱Python。之所以偏爱Python就是因为她简洁的语法,我们使用Python可以很简单的写出一个爬虫程序。本篇博客将以Python语言,用几个非常简单的例子带大家入门Python爬虫。 二、网络爬虫 如果把我们的因特网比作一张复杂的蜘蛛网的话,那我们的爬虫就是一个蜘,我们可以让这个蜘蛛在网上任意爬行,在...
Python数据分析爬虫
05-09
本课程主要讲解Python基础、数据分析扩展包Numpy、pandas、matplotlib,Python读取MySQL数据,Python爬虫及Scrapy框架,无监督机器学习算法聚类分析等,以及案例:互联网金融行业客户价值分析等。
python案例-Python爬虫案例集合
weixin_37988176的博客
10-29 523
urllib2urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用)在python2.x里面有urllib和urllib2;在python3.x里面就把urllib和urllib2合成一个urllib;urllib3是在python3.x了里面新增的第三方扩展。urllib2 官方文档:https://docs.python....
10个Python爬虫入门实例
热门推荐
m0_59164304的博客
05-30 1万+
昨天带伙伴们学习python爬虫,准备了几个简单的入门实例,分享给大家。 涉及主要知识点: 1.web是如何交互的 2.requests库的get、post函数的应用 3.response对象的相关函数,属性 4.python文件的打开,保存 代码中给出了注释,并且可以直接运行哦 如何安装requests库(安装好python的朋友可以直接参考,没有的,建议先装一哈python环境) windows用户,Linux用户几乎一样: 打开cmd输入以下命令即可,如果python的环境在C盘的目录,会提示权限
python+vue实现网站爬虫&数据分析案例
06-28
python_spiders -- 爬虫后台项目 python_spiders_web -- 爬虫前台项目 运行环境 python 3.8.3 + nginx + mysql 项目技术(必填) Python 3.8.3 + flask + vue 2.6.11 + element-ui 2.13.1 + echarts + jquery
python爬虫案例讲解分析文档
02-06
Python爬虫技术是一种常用的数据获取手段,特别是在处理网络上的大量数据时。本篇文档主要针对Python初学者,讲解如何使用Python进行网页图片的爬取,包括静态网页和动态网页的爬取方法。 首先,我们来看静态网页...
Python安装教程&数据分析&爬虫&学习资料&项目源码案例-Web开发
最新发布
06-18
当涉及Python案例时,有很多有趣的项目和实际应用可以帮助您学习和提高编程技能。以下是一些Python案例的建议: 1. **Web开发**:使用Django或Flask等框架开发Web应用程序。您可以尝试构建个人博客、电子商务网站或...
Python爬虫案例学习-获取豆瓣公开电视剧评分数据.zip
04-30
python爬虫案例源码,python爬虫学习python爬虫案例python爬取在线网站数据,python爬取网站数据,python数据分析,数据获取,项目实战,python爬虫小例子,python爬虫代码示例,python爬虫简单示例,python爬虫...
python爬虫案例的简单分析
06-17
以下是一个使用 Python 编写的简单爬虫案例,我们将使用 requests 库来发送网络请求,使用 BeautifulSoup 库来解析 HTML 页面。 1. 安装必要的库 首先,确保安装了 requests 和 beautifulsoup4。如果尚未安装,可以...
python3爬虫实例代码
03-27
简单强大的Python,福利分享~代码实例。~~~~~~~~~~~~~
爬虫入门学习案例--适合新手入门
Programmer_huangtao的博客
03-20 1369
常见的爬虫新手入门,知道什么使网页源代码,网页响应码,真正的url地址信息, 下载图片,视频,网页到本地
Python爬虫学习案例
msyqmsyq的博客
08-24 478
Python爬虫 一、爬虫是什么 是一段代码,用于获取网页上的信息 几乎所有主流的高级程序设计语言都能实现爬虫 二、爬虫的实现原理 通过代码 模拟浏览器向服务器发送Http/Https/…请求 (服务器是无法判断请求来源的),然后对响应的HTML页面进行数据处理 请求的发送 响应数据的处理 效率优化 三、HelloWorld 1、导入对应模块 ...
Python爬虫_案例分析(二)
敷衍zgf的博客
06-28 667
Python爬虫_案例分析(二)
Python 一个爬虫的案例
韩帅的博客
01-08 7067
#coding=utf-8 import urllib2 import re class Spider: """ 内涵段子爬虫类 """ def __init__(self, page, enable): self.page = page self.enable = enable def loadPage(self
python基础爬虫案例+数据分析
Whitehua
01-07 3599
最近在做一个课程设计,关于爬取安居客房价信息的,本次用到的框架有 BeautifulSoup xlwt,xlrd requests matplotlib pandas numpy 最终实现下图效果: ** 使用说明: 请先注册安居客账户 之后先运行spider.py 随后运行draw.py ** 爬虫代码 spider.py from bs4 import BeautifulSoup imp...
python爬虫案例欣赏_Python_爬虫_案例汇总:
weixin_39688378的博客
12-02 158
#-*- coding:utf-8 -*-'''扫码登陆微信后获取该微信账号的微信群(包括群内人员)和通讯录联系人信息【注:好像不全】'''importosimportreimporttimeimportsysimportsubprocessimportrequestsimportxml.dom.minidomimportjson#微信登陆classWebwxLogin(object):def _...
Python爬虫案例
04-07
以下是几个常见的Python爬虫案例: 1. 爬取网页内容:使用Python的requests库和BeautifulSoup库可以爬取网页的内容,例如爬取新闻、博客等网站的文章内容。 2. 图片下载器:使用Python的requests库可以下载网络上...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • HTML表单验证(含用户名,密码,邮箱,手机号,验证码-验证) 42774
  • RSA-python编程简单实现 16325
  • EulerOS(欧拉)操作系统安装以及使用配置 8298
  • 利用python做一个简单小应用--学生通讯录管理系统 3993
  • Kali-Linux常用命令 3559

分类专栏

  • 笔记 10篇
  • 渗透测试 1篇

最新评论

  • EulerOS(欧拉)操作系统安装以及使用配置

    M5K2: 同问,有没有找到2.10版本的镜像

  • EulerOS(欧拉)操作系统安装以及使用配置

    掉色的熊猫: 现在这个镜像能不能下载到2.9,2.10的

  • EulerOS(欧拉)操作系统安装以及使用配置

    掉色的熊猫: 你这镜像是那个版本的呀。

  • RSA-python编程简单实现

    JinxDream_Life: 解密时p=1009 q=1013 e=13 ,输入后显示逆元d为78469为非质数,输入C后解密结果与明文不符

  • HTML表单验证(含用户名,密码,邮箱,手机号,验证码-验证)

    ........6: 这个最后的注册成功的框为什么没有弹出啊

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • centos 7.9 下利用miniconda里的pyinstaller打包python程序为二进制文件操作方法
  • centos 7.9-安装部署手册
  • EulerOS(欧拉)操作系统安装以及使用配置
2023年5篇
2022年5篇
2021年5篇
2020年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

哆哆女性网什么是标准差男孩取起名稀有私服永不瞑目电视剧evaq情意绵绵红唇歌曲原唱起诉只有姓名和电话易方达积极成长你能不能不撩我起名字测试打分农资商店取名起名大全大全韩姓起名韩姓男名字大全起名字改昵称大全过年的作文现在起名字必须三个字吗新ady9映画防屏蔽官网网银怎么转账摄政王的医品狂妃大街起名大全无敌武侠系统男孩新生起名微信发起不记名投票不以为然第一人称游戏东京奏鸣曲乌鸦为什么像写字台是什么意思萌宠小大人小娜子麻麻chengrensese淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化