Python爬虫基础教程,详细讲解(含爬取文字为乱码解决办法、反爬虫机制解决办法)
Python爬虫学习笔记
前言
适当爬取怡情,过度爬取…
**
爬取到的东西不要商用!爬取到的东西不要商用!爬取到的东西不要商用!
1.准备工具
获取Python request第三方库
方法一:同时按win+r,输入cmd,打开cmd后输入:‘pip install requests’进行安装
注意:下载速度慢/下载失败大多数是因为没有设置镜像,镜像的设置如下。
一、打开cmd,输入:
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple #这里是用的清华镜像,下方有其他镜像可以使用
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
2.获取反反爬虫要用的header信息
这里用某个小破站做例子
如果你会,这一块请跳过
如果你懒得整,那么可以用下方所示的头文件(最好用自己的)
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36
注意,头文件信息就是你访问网站时,你向网站发送的自身信息(不敏感),这个信息一般不会因为网站不同而变化,所以无论是从哪个网站获取的,都通用。
先
然后
接着(如果在这一步遇到显示为空,按Ctrl+R进行刷新)
最后
头文件获取成功,接下来开始了解编写爬虫的必要库
3.库的使用
1.re正则库是一个很强大的第三方库,在此只需要学会re库的一个方法就可以了,详见:https://blog.csdn.net/qq_43639438/article/details/107735340
re.findall(pattern, string, flags=0) #搜索字符串,并以列表形式返回
在使用前需要获取所用链接所在的网页元素
元素获取如下:
对这个元素进行如下操作(re.findall用法讲解)
Reruests = requests.get('http://www.huitu.com/photo/show/20200110/135852472070.html') #马上就讲requests.get方法
html = Requests.text #访问并以文本形式接受返回url = re.findall('<img class="m-img" alt=".*?" title=".*?" src="(.*?)" />',html) #.*?表示不需要匹配的元素内容、(.*?)表示要获取的内容,并将链接赋给url#对比元素用 <img class="m-img" alt="猫咪" title="猫咪-汇图网 www.huitu.com" src="http://pic136.huitu.com/res/20200110/2257244_20200110135852472070_1.jpg" />
2.requests库的使用
同上,对于基础来说,只需要了解此库一个方法的使用
对网址进行访问:
requests.get() #括号里填写要访问的链接,此方法主要模拟浏览器对链接的访问
替换头文件(反反爬虫用)示例:
'''请求网站'''
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'
} #获取到的头文件Requests = requests.get('http://www.huitu.com/photo/show/20200110/135852472070.html',headers=headers) #改变头文件
明白上述两个方法的使用后,就开始撸码吧!
4.开始编写
注意看注释
正常编写(修复文字乱码看下面,这里只包含反反爬虫机制)
import requests #调用刚才下载的requests库
import re #调用re正则表达库(一般Python本身会自带,如果没有,可以用pip下载)
import time #做慈善
import os #创建分类用'''请求网站'''
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'
}#反反爬虫机制,替换头文件(获取方法按上上文所述即可)Requests = requests.get('http://www.huitu.com/photo/show/20200110/135852472070.html',headers=headers)
#可以改成你要抓取的网页,后面是反反爬虫html = Requests.text'''解析网址'''
dir_ml = re.findall('<a class="picSpecTxt" title="(.*?)" href=".*?" target="_blank">',html)[0] #解析标题,为文件夹命名做准备
if not os.path.exists(dir_ml): #‘使用os检测文件夹是否存在’如果当前目录不存在,则创建os.mkdir(dir_ml) #‘使用os创建文件夹’用解析到的名字为文件夹命名url = re.findall('<img class="m-img" alt=".*?" title=".*?" src="(.*?)" />',html) #解析图片的下载链接
print('反馈网址:' + str(url)) #给个反馈'''保存图片'''
for urls in url:time.sleep(1) #延缓程序1秒钟,做慈善Requests = requests.get(urls,headers=headers) #name = urls.split('/')[-1]with open(dir_ml + '/' +name,'wb') as f:f.write(Requests.content) #以二进制保存(适用于图片音频),text文字f.close() #程序结束,关闭文件
修复文字乱码(加到请求网站的下一行):
如果还乱码,那么请将‘gdk’改为‘utf-8’
requests.content.decode('gbk')
示例:
'''请求网站'''
headers = {'User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36'
}#反反爬虫机制,替换头文件(获取方法按上文所述即可)Requests = requests.get('http://www.huitu.com/photo/show/20200110/135852472070.html',headers=headers)
requests.content.decode('gbk') #改变编码格式,解决乱码
html = Requests.text
5.运行
目标图片
成功下载图片
Python爬虫基础教程,详细讲解(含爬取文字为乱码解决办法、反爬虫机制解决办法)相关推荐
- Python爬虫小白教程(二)—— 爬取豆瓣评分TOP250电影
文章目录 前言 安装bs4库 网站分析 获取页面 爬取页面 页面分析 其他页面 爬虫系列 前言 经过上篇博客Python爬虫小白教程(一)-- 静态网页抓取后我们已经知道如何抓取一个静态的页面了,现在 ...
- python提取图片文字视频教学_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...
一.爬虫记得基本方法 1.1 爬虫概述 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使 ...
- python爬取文字和图片_Python学习第七天之爬虫的学习与使用(爬取文字、图片、 视频)...
[toc] 一.爬虫记得基本方法 1.1 爬虫概述 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...
- Python爬虫入门教程02:小说爬取
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 前文 01.python爬虫入门教程01:豆瓣Top电影爬取 基本开发环境 Python 3 ...
- Python爬虫学习教程 bilibili网站视频爬取!【附源码】
Python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python? 通过爬取b站案例带领 ...
- Python爬虫入门教程 6-100 蜂鸟网图片爬取之一
1. 蜂鸟网图片简介 国庆假日结束了,新的工作又开始了,今天我们继续爬取一个网站,这个网站为 http://image.fengniao.com/ ,蜂鸟一个摄影大牛聚集的地方,本教程请用来学习,不要 ...
- python爬虫爬图片教程_Python爬虫入门教程 5-100 27270图片爬取
获取待爬取页面 今天继续爬取一个网站,http://www.27270.com/ent/meinvtupian/ 这个网站具备反爬,so我们下载的代码有些地方处理的也不是很到位,大家重点学习思路,有啥 ...
- python发短信 金山_Python爬虫基础练习(四) 金山翻译爬取(进阶篇)
上一篇文章金山翻译爬取(基础篇)讲到爬取金山翻译,并且实现了简单词汇的爬取,但是我们的报错信息都是一长串字符,就像这样 当然这个报错还是很容易看懂的,"列表索引超出范围",但是我们 ...
- b站学python_Python爬虫学习教程 bilibili网站视频爬取!【附源码】
python爬虫学习教程,万物皆可爬!每个技术大牛都是从基础慢慢的提升上去的,基础知识越深以后的发展越牛!学好python,才能玩转python,那到底怎么才能学好python? 通过爬取b站案例带领 ...
最新文章
- android dslr控制软件,DSLR Controller
- 深圳人均GDP过一万美元随想
- koa 接口返回数据_一文搞定 Koa 中间件实现原理
- Minio的容量算法及实际存储空间计算公式
- 互联网公司Java面试总结
- “互联网+”下的制造业供应链新挑战
- 在中国做操作系统研发 20 年是种什么体验?
- Android 的 生命周期_ 界面的切换 和 吐司
- 浏览器怎么清理缓存_Mac系统浏览器缓存清理工具
- 应用 | 同学,该学MyCat实际应用案例与MyCat读写分离了
- 智课雅思短语---二、exert positive/ negative effects on…
- cocos编译java时改变使用的javac的版本
- Oracle 修改表空间文件路径
- [System Design] 系统设计 (2) -- 数据库设计
- PPC小问题,持续更新中...
- Android Palette吸色原理及源码解析
- 数值分析:复化梯形公式与复化Simpson公式
- 不到最后一刻,绝不放弃!
- Google Chrome 更新失败(错误:3)检查更新时出错
- 常系数非齐次微分方程特解及其通解求解
热门文章
- letter-combinations-of-a-phone-number
- android 显示天气插件下载,Android天气插件
- android开发学习大体思路
- 服务器和笔记本直连,网口灯不亮
- 5.29:题目及答案解析
- 申请NASA账户以及批量下载数据
- Elasticsearch使用密码查询
- 京津沪稳增!佛罗伦萨小镇2021年销售额突破110亿元;对抗微软?谷歌54亿美元大手笔收购知名网络安全公司 | 美通社头条...
- Shopee店铺运营效果不好要怎么优化?
- java分类Kdd99数据集_KDD-CUP99 网络入侵检测数据集的处理与研究