一、第0周 网络爬虫工具

二、第1周 网络爬虫之规则
1.requests库的安装
打开cmd—输入pip3 install requests


博主遇到的问题:一开始提示不是内部命令也不是外部命令,在python的安装文件夹–script-也没有找到相应的pip.exe文件,于是在网上找到解决办法

如图 python -m ensurepip 即可

2.requests库的测试调用

3.requests库的主要七个方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hyWGxAsc-1569659527232)(https://img-blog.csdn.net/20170902205718344?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3Rhbmdfc2FtYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

4.requests.get的主要使用方法
4.1

response对象中包含服务器所返回的所有信息,也包含请求的Request信息

4.2requests.get的具体格式

4.3

这很好的解释了下图代码的转换
这张图片有了某些中文信息,是因为我们将获取的编码格式即加入到了encoding中使得原先的代码变成了中文信息

>>> r.apparent_encoding//用来获取编码格式
'utf-8'

5.爬虫的通用代码框架

import requests
def getHTMLText(url):try:r = requests.get(url,timeout=30)r.raise_for_status()#如果状态不是200,引发HTTPError异常r.encoding = r.apparent_encodingreturn r.textexcept:return"产生异常"if __name__=="__main__":url="http://www.baidu.com"print(getHTMLText(url))

5.1常见返回错误类型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vjkSvjcQ-1569659527241)(https://img-blog.csdn.net/20170903094002144?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3Rhbmdfc2FtYQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

5.2判断错误的方法代码

6.HTTP协议以及Requests库方法

6.1

6.2HTTP协议的内容



6.3理解PUT与PATH之间的差别

6.4代码演练部分
6.4.1 head()方法

>>> import requests
>>> r = requests.head("http://httpbin.org/get")
>>> r.headers
{'Connection': 'keep-alive', 'Server': 'meinheld/0.6.1', 'Date': 'Sun, 03 Sep 2017 02:04:02 GMT', 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true', 'X-Powered-By': 'Flask', 'X-Processed-Time': '0.00120496749878', 'Content-Length': '267', 'Via': '1.1 vegur'}
>>> r.text
''

6.4.2 post()方法

>>> r = requests.post('http://httpbin.org/post',data='ABC')
#注意字符串的引号别忘记
>>> r.text
'{\n  "args": {}, \n  "data": "ABC", \n  "files": {}, \n  "form": {}, \n  "headers": {\n    "Accept": "*/*", \n    "Accept-Encoding": "gzip, deflate", \n    "Connection": "close", \n    "Content-Length": "3", \n    "Host": "httpbin.org", \n    "User-Agent": "python-requests/2.18.4"\n  }, \n  "json": null, \n  "origin": "124.128.158.35", \n  "url": "http://httpbin.org/post"\n}\n'>>> print(r.text){"args": {}, "data": "ABC", "files": {}, "form": {}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Content-Length": "3", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.4"}, "json": null, "origin": "124.128.158.35", "url": "http://httpbin.org/post"
}

6.4.3 put方法

python
>>> payload={'key1':'value1','key2':'value2'}
>>> r = requests.put('http://httpbin.org/put',data = payload)
>>> print(r.text)
{"args": {}, "data": "", "files": {}, "form": {"key1": "value1", "key2": "value2"}, "headers": {"Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Connection": "close", "Content-Length": "23", "Content-Type": "application/x-www-form-urlencoded", "Host": "httpbin.org", "User-Agent": "python-requests/2.18.4"}, "json": null, "origin": "124.128.158.35", "url": "http://httpbin.org/put"
}

7.requests库主要方法的解析

7.1request函数的主要方法



代码部分

import requests
#1.params 用来使得服务器接收其带入的某些参数
kv = {'key1':'value1','key2':'value2'}
r = requests.request('GET','http://python123.io/ws',params=kv)#要用命名方法去引入参数
print(r.url)#2.data  向服务器提供或提交数据使用
r = requests.request('POST','http://python123.io/ws',data=kv)
body='主体内容'
r = requests.request('POST','http://python123.io/ws',data=body)

7.2剩下六个函数的主要使用方法

讨论部分:
Requests库的爬取性能分析
尽管Requests库功能很友好、开发简单(其实除了import外只需一行主要代码),但其性能与专业爬虫相比还是有一定差距的。请编写一个小程序,“任意”找个url,测试一下成功爬取100次网页的时间。(某些网站对于连续爬取页面将采取屏蔽IP的策略,所以,要避开这类网站。)
请回复代码,并给出url及在自己机器上的运行时间。

import time
import requestsdef getHTMLText(url):try:r = requests.get(url,timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingreturn 'success'except:return"fail"def count_time(times,url):start_time=time.time()for i in range  (times):getHTMLText(url)end_time=time.time()TIME=end_time-start_timereturn TIMEtimes=100
url="http://www.baidu.com"
TIME=count_time(times,url)
print('%d次访问需要的时间是%d'% (times,TIME))

中国大学MOOC·Python网络爬虫与信息提取(一)相关推荐

  1. 中国大学MOOC·Python网络爬虫与信息提取_思考小结(一)

    一. 关于requests库用法的几个辨析 1.requests库内分七个函数,分别为 request,get,head,post,put,patch,delete, 其中最经常使用的是:get/he ...

  2. Python网络爬虫与信息提取笔记(续篇)(文末附教学视频)只供教学讲解,请勿对有robots协议的网站(如淘宝网)造成骚扰

    接上篇博客:Python网络爬虫与信息提取笔记(文末附教学视频) 14:基于bs4库的HTML内容遍历方法 标签树的下行遍历: 用len(soup.body.contents)返回body标签的儿子节 ...

  3. MOOC《Python网络爬虫和信息提取》(第11次)网络爬虫之框架(第4周)

    MOOC<Python网络爬虫和信息提取>(第11次)网络爬虫之框架(第4周) MOOC–Python网络爬虫和信息提取(第11次开课) 网络爬虫之框架 21.08.10 目录 文章目录 ...

  4. 【笔记】Python网络爬虫与信息提取

    实战:总结知识点疫情爬虫 Re正则表达式 Re库的使用 scrapy爬虫框架介绍 Scrapy常用命令 网络爬虫 技术亮点: 1.采用requests发送请求,获取响应 2.采用BeautifulSo ...

  5. Python网络爬虫与信息提取(中国大学mooc)

    目录 目录 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 目标获取淘宝搜索页面的信息 理解淘宝的搜索接口翻页的处理 技术路线requests-refootnote 代码如下 股票数据定向爬虫 ...

  6. 嵩天《Python网络爬虫与信息提取》实例2:中国大学排名定向爬虫

    在介绍完requests库和robots协议后,嵩天老师又重点介绍了如何通过BeautifulSoup库进行网页解析和信息提取.这一部分就是在前面内容的基础上,综合运用requests库和Beauti ...

  7. python 网页爬虫作业调度_第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业. 4.提供图片或网站显示的学习 ...

  8. Python网络爬虫与信息提取

    1.Requests库入门 Requests安装 用管理员身份打开命令提示符: pip install requests 测试:打开IDLE: >>> import requests ...

  9. python网络爬虫与信息提取_北京理工大学_Python网络爬虫与信息提取(一)

    学习 北京理工大学 嵩天 课程笔记 课程体系结构: 1.Requests框架:自动爬取HTML页面与自动网络请求提交 2.robots.txt:网络爬虫排除标准 3.BeautifulSoup框架:解 ...

最新文章

  1. python免安装环境 linux_python如何打包脚本(库也一起打包),直接在linux环境运行,不需要安装库?...
  2. 【300】◀▶ IDL - ENVI API
  3. Linux下常见文件解压方法及命令
  4. 出身寒门的程序员,如何改变命运?
  5. 一个广为流传的关于项目管理的通俗讲解
  6. C++顺序表(模板总结)
  7. Java实现SQL格式化
  8. 基于Java的电子会议预约管理系统
  9. python微信群发助手在哪_python 微信群发_Python-Pyqt5编写微信群发软件
  10. 线性模型(梯度下降随机梯度下降)
  11. 今日头条2018 坐标
  12. 【调优方法】——warmup
  13. 两种图像拼接(无重叠相邻图有重叠相邻图)以及matlab实现(边线查找法)
  14. 首个Laravel工作流引擎发布 V1.0正式版
  15. mysql binlog笔记
  16. flex LCDS 整合 java 增删改查
  17. 朕对兄弟连的一些看法
  18. 一篇文章让你了解大数据
  19. 图文:eclipse中SVN分支合并到主干
  20. 视音频数据处理入门:H.264视频码流解析(java)

热门文章

  1. 驱动开发基础知识必修-(一)嵌入式开发板的启动过程
  2. 快马探营:移动MM“热料”解密
  3. oracle代言人,好莱坞巨星布鲁斯南与欧琳正式签约成为代言人
  4. 计算机病毒攻击战是指将什么病毒,计算机病毒攻击战是指将( )植入敌方计算机系统,删除其数据,瘫痪其系统。...
  5. 企业微信审批页面HTML,企业微信审批模板调用示例及注意事项
  6. 国王统治没有显示服务器,国王的统治Reign Of Kings服务器架设教程
  7. ABAP 长文本内容数据迁移 SAP
  8. matlab自定义函数拟合写法,[MATLAB基础] 求助:如何确定自定义函数拟合时的参数初值?感谢!...
  9. html文件中如何显示特殊符号,HTML特殊字符显示
  10. 红帆以拥有四位MCITP再获微软“数据平台金牌能力”