• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python爬虫中最重要、最常见、一定要熟练掌握的库

python 搞java代码 3年前 (2022-05-21) 29次浏览 已收录 0个评论

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

以下文章来源于Python绿色通道 ,作者龙哥带你飞

Python爬虫、数据分析、网站开发等案例教程视频免费在线观看

https://space.bilibili.<a href="https://www.gaodaima.com/tag/com" title="查看更多关于com的文章" target="_blank">com</a>/523606542
www#gaodaima.com来源gaodai.ma#com搞##代!^码@网搞代码

 

 

开始正文

Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它.

下面我们来认识这个库

 

Requests

requests是Python最为常用的http请求库,也是极其简单的.使用的时候,首先需要对requests进行安装,直接使用Pycharm进行一键安装。

1.响应与编码

<span>import</span><span> requests
url </span>= <span>"</span><span>http://www.baidu.com</span><span>"</span><span>
r </span>=<span> requests.get(url)
</span><span>print</span><span> type(r)
</span><span>print</span><span> r.status_code
</span><span>print</span><span> r.encoding
</span><span>#</span><span>print r.content</span>
<span>print</span><span> r.cookies


得到:
</span><<span>class</span> <span>"</span><span>requests.models.Response</span><span>"</span>>
200<span>
ISO</span>-8859-1
<RequestsCookieJar[<Cookie BDORZ=27315 <span>for</span> .baidu.com/>]>

 

2.Get请求方式

<code><span class="hljs-keyword">values = {<span class="hljs-string">"user":<span class="hljs-string">"aaa",<span class="hljs-string">"id":<span class="hljs-string">"123"}
<span class="hljs-keyword">url = <span class="hljs-string">"http://www.baidu.com"
r = requests.get(<span class="hljs-keyword">url,<span class="hljs-keyword">values)
print r.url

得到:<span class="hljs-keyword">http://www.baidu.com/?<span class="hljs-keyword">user=aaa&<span class="hljs-keyword">id=<span class="hljs-number">123</span></span></span></span></span></span></span></span></span></span></span></span></span></code>

3.Post请求方式

<code><span class="hljs-keyword">values = {<span class="hljs-string">"user":<span class="hljs-string">"aaa",<span class="hljs-string">"id":<span class="hljs-string">"123"}
<span class="hljs-keyword">url = <span class="hljs-string">"http://www.baidu.com"
r = requests.post(<span class="hljs-keyword">url,<span class="hljs-keyword">values)
print r.url
<span class="hljs-comment">#print r.text

得到:
<span class="hljs-keyword">http://www.baidu.com/</span></span></span></span></span></span></span></span></span></span></span></code>

4.请求头headers处理

<code><span class="hljs-attr">user_agent = <span class="hljs-string">{"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400"}
<span class="hljs-attr">header = <span class="hljs-string">{"User-Agent":user_agent}
<span class="hljs-attr">url = <span class="hljs-string">"http://www.baidu.com/"
<span class="hljs-attr">r = <span class="hljs-string">requests.get(url,headers=header)
<span class="hljs-attr">print <span class="hljs-string">r.content</span></span></span></span></span></span></span></span></span></span></code>

注意处理请求的headers
很多时候我们服务器会检验请求是否来自于浏览器,所以我们需要在请求的头部伪装成浏览器来请求服务器.一般做请求的时候,最好都要伪装成浏览器,防止出现拒绝访问等错误,这也是一种反爬虫的一种策略

特别说明,以后无论我们做什么请求,一定要带上headers,千万不要偷懒省事,把这里当成一条交通规则来理解,闯红灯不一定会发生危险但不安全,为了省事,我们遵循红灯停绿灯行就够了,做网络爬虫请求也一样,必须把这个headers加上,以防出错.

<code>user_agent = {<span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4295.400 QQBrowser/9.7.12661.400"}
header = {<span class="hljs-string">"User-Agent":user_agent}
url = <span class="hljs-string">"http://www.qq.com/"
request = urllib2.Request(url,headers=header)
response = urllib2.urlopen(request)
<span class="hljs-built_in">print response.read().decode(<span class="hljs-string">"gbk")<span class="hljs-comment">#这里注意一下需要对读取的网页内容进行转码,先要查看一下网页的chatset是什么格式.</span></span></span></span></span></span></code>

在浏览器上打开www.qq.com然后按F12,查看User-Agent:

User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求
Content-Type : 在使用 REST 接口时,服务器会检查该值,用来确定 HTTP Body 中的内容该怎样解析。
application/xml :在 XML RPC,如 RESTful/SOAP 调用时使用
application/json :在 JSON RPC 调用时使用
application/x-www-form-urlencoded :浏览器提交 Web 表单时使用
在使用服务器提供的 RESTful 或 SOAP 服务时, Content-Type 设置错误会导致服务器拒绝服务

5.响应码code与响应头headers处理

<code>url = <span class="hljs-string">"http://www.baidu.com"
r = requests.get(url)

<span class="hljs-keyword">if r.status_code == requests.codes.ok:
    <span class="hljs-built_in">print r.status_code
    <span class="hljs-built_in">print r.headers
    <span class="hljs-built_in">print r.headers.get(<span class="hljs-string">"content-type")<span class="hljs-comment">#推荐用这种get方式获取头部字段
<span class="hljs-keyword">else:
    r.raise_for_status()

得到:
200
{<span class="hljs-string">"Content-Encoding": <span class="hljs-string">"gzip", <span class="hljs-string">"Transfer-Encoding": <span class="hljs-string">"chunked", <span class="hljs-string">"Set-Cookie": <span class="hljs-string">"BDORZ=27315; max-age=86400; domain=.baidu.com; path=/", <span class="hljs-string">"Server": <span class="hljs-string">"bfe/1.0.8.18", <span class="hljs-string">"Last-Modified": <span class="hljs-string">"Mon, 23 Jan 2017 13:27:57 GMT", <span class="hljs-string">"Connection": <span class="hljs-string">"Keep-Alive", <span class="hljs-string">"Pragma": <span class="hljs-string">"no-cache", <span class="hljs-string">"Cache-Control": <span class="hljs-string">"private, no-cache, no-store, proxy-revalidate, no-transform", <span class="hljs-string">"Date": <span class="hljs-string">"Wed, 17 Jan 2018 07:21:21 GMT", <span class="hljs-string">"Content-Type": <span class="hljs-string">"text/html"}
text/html</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code>

6.cookie处理

<code>url = <span class="hljs-string">"https://www.zhihu.com/"
r = requests.get(url)
<span class="hljs-built_in">print r.cookies
<span class="hljs-built_in">print r.cookies.keys()

得到:
<RequestsCookieJar[<Cookie aliyungf_tc=AQAAACYMglZy2QsAEnaG2yYR0vrtlxfz <span class="hljs-keyword">for www.zhihu.com/>]>
[<span class="hljs-string">"aliyungf_tc"]</span></span></span></span></span></code>

7重定向与历史消息

处理重定向只是需要设置一下allow_redirects字段即可,将allow_redirectsy设置为True则是允许重定向的,设置为False则禁止重定向的

<code>r = requests.get(url,allow_redirects = <span class="hljs-keyword">True)
<span class="hljs-keyword">print r.url
<span class="hljs-keyword">print r.status_code
<span class="hljs-keyword">print r.history

得到:
http:<span class="hljs-comment">//www.baidu.com/
<span class="hljs-number">200
[]</span></span></span></span></span></span></code>

8.超时设置

超时选项是通过参数timeout来设置的
python url = “http://www.baidu.com&#8221; r = requests.get(url,timeout = 2)

9.代理设置

<code>proxis = {
    <span class="hljs-symbol">"http<span class="hljs-string">":"http:<span class="hljs-comment">//www.baidu.com",
    <span class="hljs-symbol">"http<span class="hljs-string">":"http:<span class="hljs-comment">//www.qq.com",
    <span class="hljs-symbol">"http<span class="hljs-string">":"http:<span class="hljs-comment">//www.sohu.com",

}

url = <span class="hljs-symbol">"http:<span class="hljs-comment">//www.baidu.com"
r = requests.get(url,proxies = proxis)</span></span></span></span></span></span></span></span></span></span></span></code>

如果你觉得文章还不错,请大家点赞分享下。你的肯定是我最大的鼓励和支持。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python爬虫中最重要、最常见、一定要熟练掌握的库

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址