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脚本实现下载合并SAE日志
Feb 10 Python
Python与Redis的连接教程
Apr 22 Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 Python
Python实现多线程抓取网页功能实例详解
Jun 08 Python
python进程和线程用法知识点总结
May 28 Python
python selenium爬取斗鱼所有直播房间信息过程详解
Aug 09 Python
详解python中groupby函数通俗易懂
May 14 Python
使用Nibabel库对nii格式图像的读写操作
Jul 01 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
Python 字典一个键对应多个值的方法
Sep 29 Python
python dir函数快速掌握用法技巧
Dec 09 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
迁移PHP版本到PHP7
2015/02/06 PHP
php的laravel框架快速集成微信登录的方法
2016/12/12 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
JAVASCRIPT 对象的创建与使用
2021/03/09 Javascript
jQuery 技巧小结
2010/04/02 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
Windows上node.js的多版本管理工具用法实例分析
2019/11/06 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
React学习之JSX与react事件实例分析
2020/01/06 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
Python list操作用法总结
2015/11/10 Python
python3获取当前目录的实现方法
2019/07/29 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
python 带时区的日期格式化操作
2020/10/23 Python
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
澳大利亚实惠时尚女装商店:Katies
2019/06/16 全球购物
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
开展批评与自我批评发言稿
2014/10/16 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2014年派出所工作总结
2014/11/21 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
主题班会开场白
2015/06/01 职场文书
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle