urllib的简单使用
首先需要导包
Import urllib.request
这是一个简单的网站
例如:
发起请求
Response = urlib.request.urlopen("http://www.baidu.com/")
Print(type(response))
有什么值
1. getcode()获取状态码
2. Geturl ()获取到url(获取到网址)
3. getheaders()获取头部信息
4. read() 读取全文 (以二进制方式读取全文 所以就需要解码)
5. 编码 encode ---> 字节
6. 解码 decode ----> 文本
7. 解码方式 gbk utf-8 gb2312(解码需要在meta去找)
8. 写入文件
9. With open(“baidu.com”,"w",encoding= "utf-8")as f:
F.write(response.read().decode("utf-8"))
10. Urlretrieve 读取内容直接保存在本地(可以请求网页 图片 音频)(目前都需要自己在网页上找路径)
11. rsplit()[-10-5](从右开始切片)
构造请求
1. 如果直接访问就会暴露自己的访问的地址 (user-Agent)
2. user-Agent定制 写一个字典首先 (在您需要访问的网页获取的这个user-Agent)
3. Req = Urllib.request.Request(url=变量名,headers = 变量名)
4. Response = Urllib.request.urlopen(req) (返回一个response)
浏览器
1. 浏览器会自动解码编码(所以浏览器中文的也能访问)
2. 如果需要汉字传参 就需要自己编码了(tool.chinaz.com/tools/urlencode.aspx)即可
3. 解码的时候需要知道的是 三个字节为一个汉字
4. 编码的格式
5. Urllib.parse.urlencode()(对什么编码就写在括号里面)
6. 首先需要原来的网页?F 然后在进行解码操作 在俩个个路由拼接在啊一起 即可
爬虫翻页
1. 翻页如果你想爬取数据的话 就需要根据情况分析这个网页的规律了
2. 例如:
For page in range(1,pag+1):
Pn =(page-1)*50
Full_url = url3 + "&pn=%s" %pn
urllib的简单使用的更多相关文章
- Python3网络爬虫(1):利用urllib进行简单的网页抓取
1.开发环境 pycharm2017.3.3 python3.5 2.网络爬虫的定义 网络爬虫,也叫网络蜘蛛(web spider),如果把互联网比喻成一个蜘蛛网,spider就是一只在网上爬来爬去的 ...
- 2.2使用urllib的简单传输
使用urllib传输文件 from urllib.request import urlopen filename = 'new_1.py' password = 'password' #如果设置密码 ...
- 使用urllib编写python爬虫
新版python中,urllib和urllib2合并了,统一为urllib (1)简单爬取网页 import urllib content = urllib.request.urlopen(req). ...
- urllib 源码小剖
urllib 源码小剖 urllib 是 python 内置的网络爬虫模块,如果熟悉 python 一定能很快上手使用 urllib. 写这篇文章的目的是因为用到了它,但因为用的次数较多,又或者是具体 ...
- [初学Python]编写一个最简单判断SQL注入的检测工具
0x01 背景 15年那会,几乎可以说是渗透最火的一年,各种教程各种文章,本人也是有幸在那几年学到了一些皮毛,中间因学业问题将其荒废至今.当初最早学的便是,and 1=1 和 and 1=2 这最简单 ...
- python(25)下载文件
利用程序自己编写下载文件挺有意思的.Python中最流行的方法就是通过Http利用urllib或者urllib2模块.当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种 ...
- [转] 三种Python下载url并保存文件的代码
原文 三种Python下载url并保存文件的代码 利用程序自己编写下载文件挺有意思的. Python中最流行的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib ...
- python网络编程(六)---web客户端访问
1.获取web页面 urllib2 支持任何协议的工作---不仅仅是http,还包括FTP,Gopher. import urllib2 req=urllib2.Request('http://www ...
- Django如何设置proxy
设置porxy的原因 一般情况下我们代理设置是针对与浏览器而言,通常只需在浏览器设置中进行配置,但它只针对浏览器有效,对我们自己编写的程序并任何效果,这时就需要我们在软件编码中加入代理设置. --- ...
随机推荐
- 1-4CMYK色彩模式
http://www.missyuan.com/thread-350717-1-1.html CMYK也称作印刷色彩模式,顾名思义就是用来印刷的. 只要是在印刷品上看到的图像,就是CMYK模式表现的 ...
- MySQL数据分析-(13)表操作补充:索引
大家好,我是jacky朱元禄,很高兴继续跟大家学习MySQL数据分析实战,今天跟大家分享的主题是表补充之索引: (一)前面课程的小节以及本节课程的逻辑梳理 在正式分享主题之前,jacky先跟大家捋顺一 ...
- oracle查找表索引信息
select owner,index_name,index_type from all_indexes where owner='xxxx' and table_name='xxx' select * ...
- 解决JAVA单步调试键盘输入被JDB占用的问题
解决JAVA单步调试键盘输入被JDB占用的问题 问题来源: 在完成本周任务时,编写的代码中含有Scanner类,编译及运行过程均正确,但使用JDB单步调试时,运行到输入行无法在JDB内部输入变量值. ...
- arcpy 获得是否为布局mxd.activeView
arcpy 获得是否为布局mxd.activeView print mxd.activeView PAGE_LAYOUT mxd.pageSizePageSize(width=21.590043180 ...
- Mybatis generator配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- 进程| 线程 | 阻塞 | 阻塞&非阻塞 和 同步&异步
阻塞&非阻塞 阻塞IO 调用之后一定要等到系统内核完成所有的操作之后才结束,因此它的缺点:CPU等待IO,处理能力得不到充分利用. 非阻塞IO 为了解决阻塞IO带来的一些问题,内核提供了非阻塞 ...
- ListView在编辑状态下不能获取修改后的值,无法更新数据
ListView在编辑状态下不能获取修改后的值,获取到的总是以前的值解决方法:在page_load事件里写: if(!IsPostBack) { ListViewBind(); } 原因:这涉及到as ...
- web开发的三层架构
Web层 接收客户端发送过来的数据,然后需要将数据传递给service层 Service层 业务逻辑层:业务:比如检验用户名的是否存在,如果不存在则需要把用户的数据存储在数据库中,如果存在,给web返 ...
- Java静态方法和实例方法区别详解
静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方 ...