当前位置:
首页 > temp > python入门教程 >
-
Python爬虫:爬点大家都喜欢的东西,比如美女!每天保持心情愉悦!
今天爬一个专门心情愉悦的网站!懂得都懂~
读者:哦豁!还有这么好的事,快写快写!我要心情愉悦!
马上 ,开始正题吧。
用到的环境:
python 3.8
pycharm 2021专业版 >>> 激活码
requests >>> pip install requests
parsel >>> pip install parsel
大致分为两步
一. 分析网站 (思路分析)
1. 确定需要爬取的内容
2. 通过查看源代码分析数据内容
二. 爬虫流程
1. 向目标网站发送请求(get,post)
2. 获取数据(网页源代码)
3. 解析网页(re正则表达式,css选择器,xpath,bs4,json) 提取每一个详情页的链接
4. 向详情页发送请求
5. 获取数据(网页源代码)
6. 解析网页 (提取图片链接)
7. 向图片链接发送请求
8. 获取数据(图片二进制数据)
9. 保存数据
很多小伙伴在学习Python的过程中因为没有好的资料或者没有人解答导致自己学习不下去,所以我这里都给大家准备好了,都在这里领取,包括2021最新的,有啥问题都可以在这里解答或者一起交流,学习啥的~
这就是一个大概的爬虫流程,咱们直接点,上代码!
import requests import parsel import re import os for page in range(1, 11): print(f'==================正在爬取第{page}页==================') # 1.向目标网站发送请求(get,post) response = requests.get(f'https://www.kanxiaojiejie.com/page/{page}') # 2. 获取数据(网页源代码) data_html = response.text # 3. 解析网页(re正则表达式,css选择器,xpath,bs4,json) 提取每一个详情页的链接与标题 zip_data = re.findall('<a href="(.*?)" target="_blank"rel="bookmark">(.*?)</a>', data_html) for url, title in zip_data: print(f'----------------正在爬取{title}----------------') if not os.path.exists('img/' + title): os.mkdir('img/' + title) # 4. 向详情页发送请求 resp = requests.get(url) # 5. 获取数据(网页源代码) url_data = resp.text # 6. 解析网页 (提取图片链接) selector = parsel.Selector(url_data) img_list = selector.css('p>img::attr(src)').getall() for img in img_list: # 7. 向图片链接发送请求 # 8. 获取数据(图片二进制数据) img_data = requests.get(img).content # 9. 保存数据 img_name = img.split('/')[-1] with open(f"img/{title}/{img_name}", mode='wb') as f: f.write(img_data) print(img_name, '爬取成功!!!') print(title,'爬取成功!!!')
效果太好看了,我就不展示了,大家自己试试~
作者:静默虚空
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数