爬虫之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. ...
随机推荐
- HashMap源码详解与对比
前几天工作忙得焦头烂额时,同事问了一下关于Map的特性,刹那间懵了一下,紧接着就想起来了一些关于Map的一些知识,因为只要涉及到Collection集合类时,就会谈及Map类,因此理解好Map相关的知 ...
- IDEA配置 tomcat server
- js获取文件上传进度
js获取文件上传进度: <input name="file" id="FileUpload" type="file" /> &l ...
- (开发)bable - es6转码
参考:http://www.ruanyifeng.com/blog/2016/01/babel.html Babel Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执 ...
- OC跟Swift混编
OC项目中使用Swift 本文版权归作者所有,如需转载请联系孟祥月 CSDN博客:http://blog.csdn.net/mengxiangyue 独立博客:http://mengxiangyue ...
- 让你的sharepoint2013具有EMS快递查询的功能
<iframe name="kuaidi100" src="http://www.kuaidi100.com/frame/app/index2.html" ...
- SQL获得连续的记录的统计
SELECT TYEAR, MIN(TDATE) AS STARTDATE, MAX(TDATE), COUNT(TYEAR) AS ENDNUM --TYEAR年,STARTDATE连续记录的开始时 ...
- 小米手机连接adb只显示List of devices attached
使用appium的过程中,与同事交换了下手机,突然连接adb只提示List of devices attached,没有内容了咩~ 后来看到C大的帖子,http://blog.cofface.com/ ...
- Struts2_使用token拦截器控制重复提交(很少用)
控制重复提交的方式:1.表单提交后页面重定向:2.Struts2.x token拦截器 大致流程: 例子: index.jsp <%@ page language="java" ...
- Struts1.x 用户登录模块的实现
页面验证部分: <%@ page language="java" contentType="text/html; charset=UTF-8" pageE ...