手把手教你爬虫requests实战演练——python篇

文章目录

一、前言

二、实战

1)获取百度网页并打印

 2)获取帅哥图片并下载到本地

4) 获取美女视频并下载到本地

 5)搜狗关键词搜索爬取

6)爬取百度翻译

7)爬取豆瓣电影榜单

 8)JK妹子爬取

 总结:


一、前言

前面两篇文章我已经把requests基础与高阶篇都做了详细讲解,也有不少了例子。那么本篇在基于前两篇文章之上,专门做一篇实战篇。

requests   基础篇    进阶篇
环境:jupyter
如果你不会使用jupyter请看我这一篇文章:jupyter安装教程与使用教程

二、实战

1)获取百度网页并打印

#-*- coding: utf-8 -*
import requestsurl = 'http://www.baidu.com'r = requests.get(url)
r.encoding = r.apparent_encodingprint(r.text)

运行结果:

 2)获取帅哥图片并下载到本地

 此照片链接  点它就行

现在我们就把这张图片下载下来:

代码:

import requestssrc = 'https://cn.bing.com/images/search?view=detailV2&ccid=yj6ElAFe&id=D93F105743FB238DEB0F368C30CD9881AEB3B8E8&thid=OIP.yj6ElAFeZl8v6dYUhuMgqAHaHa&mediaurl=https%3A%2F%2Ftse1-mm.cn.bing.net%2Fth%2Fid%2FR-C.ca3e8494015e665f2fe9d61486e320a8%3Frik%3D6LizroGYzTCMNg%26riu%3Dhttp%253a%252f%252fp4.music.126.net%252f9Fpqj1WM0H7fjlRQc3-TSw%253d%253d%252f109951165325278290.jpg%26ehk%3Dr9puRRQ%252fYEoDToUqJ%252bOt%252fBhB69sKQ8Zl0cwQXKrOWng%253d%26risl%3D%26pid%3DImgRaw%26r%3D0&riu=http%253a%252f%252fp2.music.126.net%252fPFVNR3tU9DCiIY71NdUDcQ%253d%253d%252f109951165334518246.jpg&ehk=o08VEDcuKybQIPsOGrNpQ2glID%252fIiEV7cw%252bFo%252fzopiM%253d&risl=1&pid=ImgRaw&r=0&exph=1024&expw=1024&q=%E5%BC%A0%E6%9D%B0&simid=608056275652971603&form=IRPRST&ck=61FF572F08E45A84E73B7ECCF670E32A&selectedindex=3&ajaxhist=0&ajaxserp=0&vt=0&sim=11'r = requests.get(src)with open('bizhi.jpg', 'wb') as f:f.write(r.content)print('下载完成') 

运行结果:

4) 获取美女视频并下载到本地

比如我得到一个视频链接:美女变身

截图:


代码:

import requestssrc = 'https://v26-web.douyinvod.com/cbf8c5256aa1445d0db1cc23cb324a96/61951eb0/video/tos/cn/tos-cn-ve-15-alinc2/ffaec236e9b84baa8de831b1335db83c/?a=6383&br=1360&bt=1360&cd=0%7C0%7C0&ch=5&cr=3&cs=0&cv=1&dr=0&ds=3&er=&ft=OyFYlOZZI0rC17XzGTh9D8Fxuhsd5.RcHqY&l=20211117222423010135163078021E6247&lr=all&mime_type=video_mp4&net=0&pl=0&qs=0&rc=amZ5eGk6Zm10OTMzNGkzM0ApNTtmOzw4O2Q1NzVoZmQ4M2ctX2s1cjQwYzBgLS1kLWFzczJeX15eLy1iMS4uYGFgYGE6Yw%3D%3D&vl=&vr='r = requests.get(src)with open('movie.mp4', 'wb') as f:f.write(r.content)print('下载完成')

 运行结果:

 5)搜狗关键词搜索爬取

代码:

import requests
#指定url
url='https://www.sogou.com/web'
kw=input('enter a word: ')
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'
}
param={'query':kw
}
#发起请求,做好伪装
response=requests.get(url=url,params=param,headers=header)
#获取相应数据
content=response.text
fileName=kw+'.html'
#将数据保存在本地
with open(fileName,'w',encoding='utf-8') as fp:fp.write(content)
print(fileName,'爬取完成!!!')

运行结果:  输入 美女 回车

 网址详情:

6)爬取百度翻译

分析找到接口:

 由此我们可以拿到接口和请求方式:

 代码:

import json
import requests
url='https://fanyi.baidu.com/sug'
word=input('请输入想翻译的词语或句子:')
data={'kw':word
}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2626.106 Safari/537.36'
}
reponse=requests.post(url=url,data=data,headers=headers)
dic_obj=reponse.json()
# print(dic_obj)
filename=word+'.json'
with open(filename,'w',encoding='utf-8') as fp:json.dump(dic_obj,fp=fp,ensure_ascii=False)
j=dic_obj['data'][1]['v']
print(j)

测试结果:

7)爬取豆瓣电影榜单

目标网址:

https://movie.douban.com/chart

 代码:

import json
import requests
url='https://movie.douban.com/j/chart/top_list?'
params={'type': '11','interval_id': '100:90','action': '','start': '0','limit': '20',
}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2626.106 Safari/537.36'
}
reponse=requests.get(url=url,params=params,headers=headers)
dic_obj=reponse.json()
print(dic_obj)
with open('douban.json','w',encoding='utf-8') as fp:json.dump(dic_obj,fp=fp,ensure_ascii=False)

运行结果:(同时保存为json)

 8)JK妹子爬取

import requests
import re
import urllib.request
import time
import os
header={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}
url='https://cn.bing.com/images/async?q=jk%E5%88%B6%E6%9C%8D%E5%A5%B3%E7%94%9F%E5%A4%B4%E5%83%8F&first=118&count=35&relp=35&cw=1177&ch=705&tsc=ImageBasicHover&datsrc=I&layout=RowBased&mmasync=1&SFX=4'
request=requests.get(url=url,headers=header)
c=request.text
pattern=re.compile(r'<div class="imgpt".*?<div class="img_cont hoff">.*?src="(.*?)".*?</div>',re.S
)
items = re.findall(pattern, c)
# print(items)
os.makedirs('photo',exist_ok=True)
for a in items:print(a)
for a in items:print("下载图片:"+a)b=a.split('/')[-1]urllib.request.urlretrieve(a,'photo/'+str(int(time.time()))+'.jpg')print(a+'.jpg')time.sleep(2)

运行结果:

 图片如下:

 总结:

如果本文的表头或者url处不懂或不知道怎么找,请移步到基础篇先去学习一下!

如果本文有不当之处,请你指出,谢谢!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android studio 3.x 安装genymotion插件

在日常的Android开发中&#xff0c;模拟器是必不可少的&#xff0c;下面就给大家讲解一下如何在Android studio 3.x 安装genymotion插件。 对于Android studio 3.x之前的版本&#xff0c;可以直接在插件那里在线安装genymotion插件。 Android studio 3.0版本之后就搜索不到了…

图片弹框

用js实现图片弹框的特效。 效果展示 代码展示 html内容 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title></head><body><img id"myImg" src"img/c_7…

最短路径和距离及可视化——matlab

文章目录 一、前言 二、最短路线 2.1 教程 2.1.1 sparse创建稀疏矩阵 2.1.2 有向图最短路径&#xff08;1&#xff09; 2.1.3 有向图最短路径&#xff08;2&#xff09; 2.1.4 无向图最短路径&#xff08;1&#xff09; 2.1.5无向图最短路径&#xff08;2&#xff09; …

没有bug队——加贝——Python 练习实例 1,2

目录 1.题目&#xff1a; 2.题目&#xff1a; 1.题目&#xff1a; 有四个数字&#xff1a;1、2、3、4&#xff0c;能组成多少个互不相同且无重复数字的三位数&#xff1f;各是多少&#xff1f; 程序分析&#xff1a;可填在百位、十位、个位的数字都是1、2、3、4。组成所有的…

【OpenCV 例程300篇】250. 梯度算子的传递函数

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程300篇】250. 梯度算子的传递函数 1. 空间卷积与频域滤波 空间域图像滤波是图像与滤波器核的卷积&#xff0c;而空间卷积的傅里叶变换是频率域中相应变换的乘积&#xff0c;因此频率域图像滤波是频率域滤波器…

JS贪吃蛇

Js实现贪吃蛇小游戏。 程序解析&#xff1a; 画表格&#xff0c;画出相对应大小的表格速度的快慢调节随机生成事物的位置使用键盘的方向键控制移动位置当贪吃蛇碰到四周游戏结束&#xff0c;弹框显示效果演示 代码演示 html内容 <!DOCTYPE html> <html><he…

没有bug队——加贝——Python 练习实例 3,4

3.题目&#xff1a; 一个整数&#xff0c;它加上100后是一个完全平方数&#xff0c;再加上168又是一个完全平方数&#xff0c;请问该数是多少&#xff1f; 程序分析&#xff1a; 假设该数为 x。 1、则&#xff1a;x 100 n2, x 100 168 m2 2、计算等式&#xff1a;m2 …

lcd4linux 1602,详解一种LCD1602 的4线接法

描述虽然LCD1602的显示屏幕与显示字符都较小&#xff0c;实用性并不强&#xff0c;但是在一般的教学实验中&#xff0c;它仍不失为一个常用的输出显示设备。LCD1602与单片机连接的线路共有11条&#xff0c;其中有8条数据线&#xff0c;3条控制线。如果把它们都连接上&#xff0…

没有bug队——加贝——Python 练习实例 5,6

目录 5.题目&#xff1a; 6.题目&#xff1a; 5.题目&#xff1a; 输入三个整数x,y,z&#xff0c;请把这三个数由小到大输出。 程序分析&#xff1a;我们想办法把最小的数放到x上&#xff0c;先将x与y进行比较&#xff0c;如果x>y则将x与y的值进行交换&#xff0c;然后再…

MATLAB教程(1) MATLAB 基础知识(1)

第一部分&#xff1a;MATLAB显示桌面的基本布局 桌面基础知识- MATLAB & Simulink- MathWorks 中国 1.启动MATLAB后&#xff0c;桌面会显示默认布局&#xff0c;主要有以下三个部分&#xff1a; 当前文件夹命令行窗口工作空间 2.在MATLAB中一般需要创建变量和调用函数。…

【OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域(MSER)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程 300篇】247. 特征检测之最大稳定极值区域&#xff08;MSER&#xff09; 1. 最大稳定极值区域&#xff08;MSER&#xff09; 最大稳定极值区域&#xff08;MSER-Maximally Stable Extremal Regions&#xf…

电脑蹦迪

如何建立一个小程序让你的电脑蹦迪的呢&#xff1f; 效果演示 1.首先在桌面新建一个记事本 2.在里面添加如下代码 color 1A echo 电脑color 1B echo 电脑color 1C echo 电脑color 1D echo 电脑echo %0 3.保存记事本文件 4.修改后对名为.bat之后点击运行即可。

MATLAB教程(1) MATLAB 基础知识(2)

第三部分&#xff1a;数组的索引 数组索引- MATLAB & Simulink- MathWorks 中国 MATLAB中的每一个变量都是可以存储多个值的数组。如果想要使用数组中的某一个值&#xff0c;则需要用到索引。 1.单个元素的索引 从一个数组中索引某个元素一般有两种方法&#xff1a; 第…

没有bug队——加贝——Python 练习实例 7,8

7.题目&#xff1a; 将一个列表的数据复制到另一个列表中。 程序分析&#xff1a;使用列表[:]。 注&#xff1a;[:] 表示索引全部&#xff1b;[1:]表示从索引1到最后&#xff1b;[:2]表示从第一个索引到索引2前一个 a [1, 2, 3] b1 a[:] b2 a[1:] b3 a[:2] print (b1) …

云动画文字

用Js技术实现云动画文字。 效果演示 代码展示 html内容 <!doctype html> <html><head><meta charset"utf-8"><title></title><style>body {background-color:#000000;color:#555555; } h4 {font-family:sans-serif;co…

爬虫之祖urlib 简易教程

目录 一、前言框架 二、网址请求 2.1 打开网址 2.2 超时设置 2.3 错误抓取 三、更深请求 3.1 打开网址 3.2 请求头添加 3.3 链接解析 四、Robots 协议 五.万能视频下载 小彩蛋 一、前言框架 我们来学一下爬虫之祖urlib&#xff0c;不管你什么模块都是起源于该模块。…

【youcans 的 OpenCV 学习课】12. 彩色图像的处理

专栏地址&#xff1a;『youcans 的图像处理学习课』 文章目录&#xff1a;『youcans 的图像处理学习课 - 总目录』 【youcans 的 OpenCV 学习课】12.彩色图像的处理 文章目录【youcans 的 OpenCV 学习课】12.彩色图像的处理1. 图像的颜色空间转换图像的色彩空间基础图像的颜色空…

炫酷线条背景动画

使用H5的Canvas实现网页的炫酷线条背景特效。 效果演示 代码展示 html内容 <!DOCTYPE html> <html > <head> <meta charset"UTF-8"> <title></title><style> canvas{position:absolute;top:0;left:0;background-colo…

MATLAB教程(1) MATLAB 基础知识(3)

第五部分&#xff1a;文本和字符 文本和字符- MATLAB & Simulink- MathWorks 中国 在处理文本时&#xff0c;将其中的字符序列用单引号括起来&#xff0c;可以将文本分配给变量。 例如&#xff1a;myText Hello, world如果文本本身包括一个单引号&#xff0c;则在定义时…

没有bug队——加贝——Python 练习实例 9,10

9.题目&#xff1a; 暂停一秒输出。 程序分析&#xff1a;使用 time 模块的 sleep() 函数。 注&#xff1a;dict.items表示取出字典中的值 代码&#xff1a; #9 import timemyD {1: a, 2: b} for key, value in dict.items(myD):print (key, value)time.sleep(1) # 暂停 …