python爬虫(一)—发起请求

python爬虫(一)——发起请求

一、准备工作

在准备发起请求的时候,我们需要用到requests库,事实上Urllib和aiohttp也是可以的,但是由于requests已经比较完善了,就不再介绍Urllib和aiohttp了
pip安装或者pycharm的settings下载都是可以的。

二、数据采集

使用首先我们要了解的是如何获取整个页面的东西,这是最基础的,然后我们才需要在整个页面中筛选出你所需要的信息。我们需要用到的就是requests里的get(),这是一个最简单的获取网页内容的方式,我们在必应图片上查“头像”得到的是下面的界面

你去查看网页源代码之后就会发现,它超级的复杂,没学过HTML看不懂怎么办,没关系,我也看不懂,但是咱们是有工具帮咱们的。

先介绍下get( )吧,在get()中,他的请求的参数是有很多的,一个必写的是url,翻译成中文就是网站的网址。还有headers,这个是常写的,但不是必写,它就相当于伪造了浏览器的头,然后网址自动响应返回给你内容,有些网址是需要这个的(大部分都需要)。还有paramsproxiesverifytimeoutcookies,这几个由于不常用,之后用到的时候再讲吧,或者可以自行百度搜索。
演示一下获取这个网页的信息:

import requests
reponses = requests.get('https://cn.bing.com/images/search?q=%E5%A4%B4%E5%83%8F&first=1&cw=1518&ch=722')
html = reponses.text
print(html)

这样我们就将这个页面的源代码就捕获到了

就是这个亚子
当然,我举的这个例子不太好,因为它不需要用到headers就全都返回给了你,我们来找一个需要用headers的网站
……………………………………
……………十分钟后……………
……………………………………
终于找到一个需要headers的了,那就是知乎,看来知乎还是比较严谨的,尝试一下

import requests
reponses = requests.get('https://www.zhihu.com/')
html = reponses.text
print(html)

它返回的是400

我们需要了解一下这时的错误码是什么原因,推荐一个网址

https://www.cnblogs.com/Aha-Sanding/p/5512787.html

里面有较全的错误码解释,400是我们不希望看到的,这时我们就需要将headers加上去,那么,headers从哪里找呢
打开知乎页面右键点击检查,会出现如下的一个页面

点进Network里然后再刷新页面,就会发现新增了很多东西,随机点开一个,然后找到user-agent,那就是请求头,将其保存为字典格式。

import requests
headers = {
    'user-agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Mobile Safari/537.36'
}
reponses = requests.get('https://www.zhihu.com/',headers = headers)
html = reponses.text
print(html)

这样的话返回的就不是400了

我们也可以查看现在的状态码是什么

>>>print(reponses.status_code)
200  

200代表的是请求成功

发起请求就这么多吧重点是在后面,之后咱往后延伸,案例的话下一次统一一下。

全部评论

相关推荐

11-05 07:29
贵州大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务