10个python爬虫入门实例(小结)


Posted in Python onNovember 01, 2020

昨天带伙伴萌学习python爬虫,准备了几个简单的入门实例

涉及主要知识点:

  1. web是如何交互的
  2. requests库的get、post函数的应用
  3. response对象的相关函数,属性
  4. python文件的打开,保存

代码中给出了注释,并且可以直接运行哦

如何安装requests库(安装好python的朋友可以直接参考,没有的,建议先装一哈python环境)

windows用户,Linux用户几乎一样:

打开cmd输入以下命令即可,如果python的环境在C盘的目录,会提示权限不够,只需以管理员方式运行cmd窗口

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

Linux用户类似(ubantu为例): 权限不够的话在命令前加入sudo即可

sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

1.爬取强大的BD页面,打印页面信息

# 第一个爬虫示例,爬取百度页面

import requests #导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("http://www.baidu.com") #生成一个response对象

response.encoding = response.apparent_encoding #设置编码格式

print("状态码:"+ str( response.status_code ) ) #打印状态码

print(response.text)#输出爬取的信息

2.常用方法之get方法实例,下面还有传参实例

# 第二个get方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("http://httpbin.org/get") #get方法

print( response.status_code ) #状态码

print( response.text )

3. 常用方法之post方法实例,下面还有传参实例

# 第三个 post方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.post("http://httpbin.org/post") #post方法访问

print( response.status_code ) #状态码

print( response.text )

4. put方法实例

# 第四个 put方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.put("http://httpbin.org/put") # put方法访问

print( response.status_code ) #状态码

print( response.text )

5.常用方法之get方法传参实例(1)

如果需要传多个参数只需要用&符号连接即可如下

# 第五个 get传参方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("http://httpbin.org/get?name=hezhi&age=20") # get传参

print( response.status_code ) #状态码

print( response.text )

6.常用方法之get方法传参实例(2)

params用字典可以传多个

# 第六个 get传参方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

data = {
	"name":"hezhi",
	"age":20
}
response = requests.get( "http://httpbin.org/get" , params=data ) # get传参

print( response.status_code ) #状态码

print( response.text )

7.常用方法之post方法传参实例(2) 和上一个有没有很像

# 第七个 post传参方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

data = {
	"name":"hezhi",
	"age":20
}
response = requests.post( "http://httpbin.org/post" , params=data ) # post传参

print( response.status_code ) #状态码

print( response.text )

8.关于绕过反爬机制,以zh爸爸为例

# 第好几个方法实例

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get( "http://www.zhihu.com") #第一次访问知乎,不设置头部信息

print( "第一次,不设头部信息,状态码:"+response.status_code )# 没写headers,不能正常爬取,状态码不是 200

#下面是可以正常爬取的区别,更改了User-Agent字段

headers = {

		"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"

}#设置头部信息,伪装浏览器

response = requests.get( "http://www.zhihu.com" , headers=headers ) #get方法访问,传入headers参数,

print( response.status_code ) # 200!访问成功的状态码

print( response.text )

9.爬取信息并保存到本地,因为目录关系,在D盘建立了一个叫做爬虫的文件夹,然后保存信息

注意文件保存时的encoding设置

# 爬取一个html并保存

import requests

url = "http://www.baidu.com"

response = requests.get( url )

response.encoding = "utf-8" #设置接收编码格式

print("\nr的类型" + str( type(response) ) )

print("\n状态码是:" + str( response.status_code ) )

print("\n头部信息:" + str( response.headers ) )

print( "\n响应内容:" )

print( response.text )

#保存文件
file = open("D:\\爬虫\\baidu.html","w",encoding="utf") #打开一个文件,w是文件不存在则新建一个文件,这里不用wb是因为不用保存成二进制

file.write( response.text )

file.close()

10.爬取图片,保存到本地

#保存百度图片到本地

import requests #先导入爬虫的库,不然调用不了爬虫的函数

response = requests.get("https://www.baidu.com/img/baidu_jgylogo3.gif") #get方法的到图片响应

file = open("D:\\爬虫\\baidu_logo.gif","wb") #打开一个文件,wb表示以二进制格式打开一个文件只用于写入

file.write(response.content) #写入文件

file.close()#关闭操作,运行完毕后去你的目录看一眼有没有保存成功

到此这篇关于10个python爬虫入门实例(小结)的文章就介绍到这了,更多相关python爬虫入门内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
Django返回json数据用法示例
Sep 18 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
Python I/O与进程的详细讲解
Mar 08 Python
Pytorch中的variable, tensor与numpy相互转化的方法
Oct 10 Python
Django框架HttpResponse对象用法实例分析
Nov 01 Python
python使用rsa非对称加密过程解析
Dec 28 Python
tensorflow生成多个tfrecord文件实例
Feb 17 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
Python 微信公众号文章爬取的示例代码
Nov 30 Python
PyTorch 如何设置随机数种子使结果可复现
May 12 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 #Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 #Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 #Python
python Cartopy的基础使用详解
Nov 01 #Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 #Python
关于python中导入文件到list的问题
Oct 31 #Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
Oct 31 #Python
You might like
论建造顺序的重要性
2020/03/04 星际争霸
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
JavaScript 判断浏览器类型及版本
2009/02/21 Javascript
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
javascript中的prototype属性使用说明(函数功能扩展)
2010/08/16 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
浅谈EasyUI中Treegrid节点的删除
2015/03/01 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
loading动画特效小结
2017/01/22 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
layer ui插件显示tips时,修改字体颜色的实现方法
2019/09/11 Javascript
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
Python虚拟环境的原理及使用详解
2019/07/02 Python
python SQLAlchemy 中的Engine详解
2019/07/04 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Python3实现二叉树的最大深度
2019/09/30 Python
中国制造网:Made-in-China.com
2019/10/25 全球购物
春季运动会广播稿大全
2014/02/19 职场文书
化妆品店促销方案
2014/02/24 职场文书
大四毕业生自荐书
2014/07/05 职场文书
个人先进材料范文
2014/12/30 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
pytorch Dropout过拟合的操作
2021/05/27 Python
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫
Android开发手册Chip监听及ChipGroup监听
2022/06/10 Java/Android