爬虫之urllib模块
1. urllib模块介绍
- python自带的一个基于爬虫的模块。
- 作用:可以使用代码模拟浏览器发起请求。
- 经常使用到的子模块:request,parse。
- 使用流程:
- 指定URL。
- 针对指定的URL发起了一个请求。
- 获取页面数据。
- 持久化储存。
2. 爬取搜狗首页的页面数据
# 需求:爬取搜狗首页的页面数据
import urllib.request # 1. 指定url
url = 'https://www.sogou.com/' # 2. 发起请求:urlopen可以根据指定的url发起请求,且返回一个响应对象(byte类型)
response = urllib.request.urlopen(url) # 3. 获取页面数据:read函数返回的就是响应对象中存储的页面数据
page_text = response.read() # 4. 持久化存储
with open('./sougou.html','wb') as fp:
fp.write(page_text)
print('写入数据成功')
3. 爬取指定词条所对应的页面数据
import urllib.request
import urllib.parse # 1. 指定url
url = 'https://www.sogou.com/web?query=' # url特性:url不可以存在非ASCII编码的字符数据
word = urllib.parse.quote('人民币')
url += word # 有效的url # 2. 发起请求
response = urllib.request.urlopen(url=url) # 3. 获取页面数据
page_text = response.read()
with open('rmb.html','wb') as fp:
fp.write(page_text)
4.反爬和反反爬
- 反爬机制:网站检查请求的UA,如果发现UA是爬虫程序,则拒绝提供网站数据。
- User-Agent(UA):请求载体的身份标识,正常是浏览器。
- 反反爬机制:伪装爬虫程序请求的UA,例如伪装成谷歌浏览器或火狐浏览器的身份标识。
mport urllib.request url = 'https://www.baidu.com/' # UA伪装
# 1. 自制定一个请求对象
headers = {
# 存储任意的请求头信息
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}
# 该请求对象的UA进行了成功的伪装
request = urllib.request.Request(url=url,headers=headers) # 2. 针对自制定的请求对象发起请求
reponse = urllib.request.urlopen(request) print(reponse.read())
5. post请求
import json
import urllib.request
import urllib.parse # 一、 指定URL
url = 'https://fanyi.baidu.com/sug' # 对post请求携带的参数进行处理。流程:
# 1. 将请求参数封装到字典中
data = {
'kw':'西瓜'
} # 2. 使用parse中的urlencode进行编码处理
data = urllib.parse.urlencode(data) # 3. 将步骤2的编码结果转换成byte类型
data = data.encode() # 二、发起post请求:urlopen函数的data参数表示的就是经过处理之后的post请求携带的参数
response = urllib.request.urlopen(url=url,data=data) page_text = response.read() with open('translate.json','ab') as fp:
fp.write(page_text)
爬虫之urllib模块的更多相关文章
- Python爬虫之urllib模块2
Python爬虫之urllib模块2 本文来自网友投稿 作者:PG-55,一个待毕业待就业的二流大学生. 看了一下上一节的反馈,有些同学认为这个没什么意义,也有的同学觉得太简单,关于Beautiful ...
- Python爬虫之urllib模块1
Python爬虫之urllib模块1 本文来自网友投稿.作者PG,一个待毕业待就业二流大学生.玄魂工作室未对该文章内容做任何改变. 因为本人一直对推理悬疑比较感兴趣,所以这次爬取的网站也是平时看一些悬 ...
- 练手爬虫用urllib模块获取
练手爬虫用urllib模块获取 有个人看一段python2的代码有很多错误 import re import urllib def getHtml(url): page = urllib.urlope ...
- 洗礼灵魂,修炼python(53)--爬虫篇—urllib模块
urllib 1.简介: urllib 模块是python的最基础的爬虫模块,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web 协议,例如 ...
- Python爬虫urllib模块
Python爬虫练习(urllib模块) 关注公众号"轻松学编程"了解更多. 1.获取百度首页数据 流程:a.设置请求地址 b.设置请求时间 c.获取响应(对响应进行解码) ''' ...
- python爬虫-urllib模块
urllib 模块是一个高级的 web 交流库,其核心功能就是模仿web浏览器等客户端,去请求相应的资源,并返回一个类文件对象.urllib 支持各种 web 协议,例如:HTTP.FTP.Gophe ...
- 爬虫--urllib模块
一.urllib库 概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urll ...
- 爬虫(三):urllib模块
1. urllib模块 1.1 urllib简介 urllib 是 Python3 中自带的 HTTP 请求库,无需复杂的安装过程即可正常使用,十分适合爬虫入门 urllib 中包含四个模块,分别是: ...
- python爬虫 urllib模块url编码处理
案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦'的页面数据) import urllib.request # 1.指定url url = 'https://www.sogou. ...
随机推荐
- CF1096C Polygon for the Angle
思路: 要想到正n边形中所有可能的ang为180 * k / n (1 <= k <= n - 2). 根据n = 180 * k / ang, n是大于等于3的整数,并且n >= ...
- spring-cloud构架微服务(2)-全局配置二
接上篇,实际项目中,可能会遇到有些配置项,例如:邮件地址.手机号等在服务已经上线之后做了改动(就当会出现这种情况好了).然后你修改了配置信息,就得一个一个去重启对应的服务.spring-全局配置提供了 ...
- [转]WinForm下Splash(启动画面)制作
本文转自:http://www.smartgz.com/blog/Article/1088.asp 原文如下: 本代码可以依据主程序加载进度来显示Splash. static class Progra ...
- selenium Element not found in the cache - perhaps the page has changed since it was looked up接解决
selenium Element not found in the cache - perhaps the page has changed since it was looked up.这个问题爆出 ...
- C#实现屏幕指定区域截屏
//string Opath = @"C:/Picture"; //if (Opath.Substring(Opath.Length - 1, 1) != @ ...
- ubuntu linux安装octave
sudo apt-add-repository ppa:octave/stable sudo apt-get update sudo apt-get install octave 安装完成后,在终端中 ...
- IA32的三种地址
IA32的三种地址 逻辑地址:机器语言指令仍用这种地址指定一个操作数的地址或一条指令的地址. 这种寻址方式在Intel的分段结构中表现得尤为具体,它使得MS-DOS或Windows程序员把程序分为若干 ...
- 【HHHOJ】ZJOI2019模拟赛(十三)03.10 解题报告
点此进入比赛 得分: \(97+0+10=107\) 排名: \(Rank\ 3\) \(Rating\):\(+47\) \(T1\):[HHHOJ187]Hashit(点此看题面) 容易想到可以用 ...
- 缓存头Cache-Control的含义和使用
首先Cache-Control有哪些特性呢?一个是可缓存性 可缓存性 public: 代表这个http请求返回的内容所经过的任何路径中,包括一些中间的http的代理服务器,以及发出这个请求的客户端浏览 ...
- bpclntcmd一条神奇的命令,解决新安装nbu客户端无法连接的问题 (屡试不爽神命令)
1. bpclntcmd案例 bpclntcmd -clear_host_cache bpclntcmd – 测试 NetBackup 系统的功能,并在 NetBackup 客户端上启用光纤传输服务 ...