Python 3爬虫网易云(一)—— Requests库用法
2017-09-13 13:44
429 查看
写在最前面!!!本文只适合小白看,大牛就不用围观了,非要围观的也请槽点轻吐
爬虫的基本流程
发起请求
通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应
获取响应内容
如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型
解析内容
得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理
保存数据
保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件
接下来我将以爬取网易云为例一步一步进行上述步骤的实现
本爬虫基于Python 3.x IDE为 pycharm
什么是Request,Response
浏览器发送消息给网址所在的服务器,这个过程就叫做HTPP Request
服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应的处理,然后把消息回传给浏览器,这个过程就是HTTP Response
浏览器收到服务器的Response信息后,会对信息进行相应的处理,然后展示
主要爬取方法:requests.get()
包含参数:
url–即统一资源定位符,也就是我们说的网址
params–请求参数,即网页链接”?”后的参数
headers–请求头的所有信息
proxies–代理信息
接下来我们试一试最简单的爬取
status_code表示状态码(这里为200) text表示数据为文本类型
结果返回的是网页的源代码
代码过长 所以中间切了很多
然后,你会发现有些网页会识别出程序爬取网页信息
所以我们需要模拟浏览器登陆获取网页信息
这就需要用到前面介绍的参数了
具体的请求头信息在浏览器中F12查看(这里以火狐浏览器为例)
在左侧访问记录中,找到“200 http://music.163.com/#/artist?id=13193”这一条,点击查看其对应的请求和响应报头具体内容:
包含请求时的头部信息,如User-Agent,Host,Cookies等信息
接下来,在爬虫代码里自定义网页请求报头:
代码很简单
爬取出来的结果和上面一样,不过伪装成了模拟器登陆获取。
爬虫的基本流程
发起请求
通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应
获取响应内容
如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型
解析内容
得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理
保存数据
保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件
接下来我将以爬取网易云为例一步一步进行上述步骤的实现
本爬虫基于Python 3.x IDE为 pycharm
Requests —抓取网页内容
Requeest中主要用到两类方法:Request和Response什么是Request,Response
浏览器发送消息给网址所在的服务器,这个过程就叫做HTPP Request
服务器收到浏览器发送的消息后,能够根据浏览器发送消息的内容,做相应的处理,然后把消息回传给浏览器,这个过程就是HTTP Response
浏览器收到服务器的Response信息后,会对信息进行相应的处理,然后展示
主要爬取方法:requests.get()
包含参数:
url–即统一资源定位符,也就是我们说的网址
params–请求参数,即网页链接”?”后的参数
headers–请求头的所有信息
proxies–代理信息
接下来我们试一试最简单的爬取
import requests a = requests.get('http://music.163.com/#/artist?id=13193') print(a.status_code,a.text)
status_code表示状态码(这里为200) text表示数据为文本类型
结果返回的是网页的源代码
200 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="baidu-site-verification" content="cNhJHKEzsD" /> <meta property="qc:admins" content="27354635321361636375" /> <meta name="keywords" content="网易云音乐,音乐,播放器,网易,下载,播放,DJ,免费,明星,精选,歌单,识别音乐,收藏,分享音乐,音乐互动,高音质,320K,音乐社交,官网,music.163.com,netease cloud music,cloudmusic,neteasemusic,neteasecloudmusic,music,netease,cloud" /> <meta name="description" content="网易云音乐是一款专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活。cloud,netease cloud music,cloudmusic,neteasemusic,neteasecloudmusic,music,netease" /> <title>网易云音乐</title> <meta name="applicable-device" content="pc,mobile"> <script type="text/javascript"> ...... if (navigator.userAgent.indexOf('iPad') != -1) { iframeHeight = Math.max( Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), Math.max(document.body.offsetHeight, document.documentElement.offsetHeight), Math.max(document.body.clientHeight, document.documentElement.clientHeight) ); top.document.body.style.height = iframeHeight + 20 + 'px'; }</script> </html>
代码过长 所以中间切了很多
然后,你会发现有些网页会识别出程序爬取网页信息
所以我们需要模拟浏览器登陆获取网页信息
这就需要用到前面介绍的参数了
具体的请求头信息在浏览器中F12查看(这里以火狐浏览器为例)
在左侧访问记录中,找到“200 http://music.163.com/#/artist?id=13193”这一条,点击查看其对应的请求和响应报头具体内容:
包含请求时的头部信息,如User-Agent,Host,Cookies等信息
接下来,在爬虫代码里自定义网页请求报头:
代码很简单
import requests a = ('http://music.163.com/#/artist?id=13193') header = {"User-Agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0'} url_a = requests.get(url = a,headers = header) print(url_a.status_code,url_a.text)
爬取出来的结果和上面一样,不过伪装成了模拟器登陆获取。
相关文章推荐
- 芝麻HTTP: Python爬虫利器之Requests库的用法
- Python爬虫利器一之Requests库的用法
- Python爬虫利器一之Requests库的用法
- Python爬虫利器一之Requests库的用法
- 运维学python之爬虫工具篇(一)Requests库的用法
- Python 3爬虫网易云(二)—— BeautifulSoup库用法上篇
- Python爬虫利器一之Requests库的用法
- Python爬虫利器一之Requests库的用法
- [置顶] 【python 爬虫】selenium+phontomjs 用法
- python爬虫之一:requests库
- Python爬虫-BeautifulSoup4 库的一些用法
- Python爬虫—1入门_2_python内置urllib库的高级用法
- 从零开始写Python爬虫 --- 1.1 requests库的安装与使用
- Python利用Requests库写爬虫
- Python爬虫利器二之Beautiful Soup的用法
- 数据爬虫(三):python中requests库使用方法详解
- Python爬虫利器二之Beautiful Soup的用法
- Python爬虫利器二之Beautiful Soup的用法
- python 网络爬虫 Beautiful Soup用法
- python爬虫入门笔记:Requests库