Python 3爬虫网易云(一)--每天进步一点点(Request库用法)

**写在最前面!!!本文只适合小白看,大牛就不用围观了,非要围观的也请槽点轻吐**

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------爬虫的基本流程 -----

发起请求

通过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表示数据为文本类型结果返回的是网页的源代码


代码过长  所以中间切了很多 然后,你会发现有些网页会识别出程序爬取网页信息

所以我们需要模拟浏览器登陆获取网页信息这就需要用到前面介绍的参数了具体的请求头信息在浏览器中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)```

爬取出来的结果和上面一样,不过伪装成了模拟器登陆获取。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 声明:本文讲解的实战内容,均仅用于学习交流,请勿用于任何商业用途! 一、前言 强烈建议:请在电脑的陪同下,阅读本文...
    Bruce_Szh阅读 12,809评论 6 28
  • Refer to: www.threemeal.com/blog/12/ 中间件 中间件是一个钩子框架,它们可以介...
    兰山小亭阅读 16,589评论 9 165
  • Python学习网络爬虫主要分3个大的版块:抓取,分析,存储 另外,比较常用的爬虫框架Scrapy,这里最后也详细...
    楚江数据阅读 1,482评论 0 6
  • 1 前言 作为一名合格的数据分析师,其完整的技术知识体系必须贯穿数据获取、数据存储、数据提取、数据分析、数据挖掘、...
    whenif阅读 18,111评论 45 523