lookcos 发表于 2020-2-16 12:06

[爬虫基础] Requests教程: 让 HTTP 服务人类

本帖最后由 lookcos 于 2020-2-16 12:11 编辑

0. 前言:
目前,随着人工智能与大数据时代的到来,也带火了一批编程语言,这其中就包括Python。
在这个连房地产大佬潘石屹都学python的时代,不会点python着实不好意思。
不过话说回来,学会了python的确能够运用在生活中,提高生活效率。
比如,帮你下载图片或者视频,抢个火车票,推送信息等等。
Python的基础,可以参考菜鸟教程,廖雪峰的博客等进行学习。

1. 简易爬虫工作简述:

在这之前推荐简单了解一下http协议。
爬虫在爬取一个网站时,首先会获取该网页的内容,然后在进行正则匹配或者html解析等方法解析出我们需要的内容。
那么第一步便是:通过一个get请求,请求到有效的网页html。
2.完成一次 Http GET请求


python自带的库 完成一个简单的get请求事这样的,
from urllib import request
response = reqeust.urlopen('https://www.baidu.com')
print(response.read().decode())

我推荐使用第三方模块requests,一般来说常见的爬虫项目中用的也是这个模块,因为他简单而强大,也是我们今天讲述的重点。

windows安装:
可以在powershell或者cmd中执行 pip install requests,为了提升安装的速度,推荐使用清华源,
可以执行:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

Linux、Mac 安装:
可以执行:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests

下面就可以使用了:

# -*- coding:utf-8 -*-
import requests
pojie_url = "https://www.52pojie.cn"
res = requests.get(url=pojie_url)
res = requests.get(pojie_url)
res = requests.get("https://www.52pojie.cn")

print(res.status_code) 输出当前请求后的HTTP状态码,200 为成功, 404为没有找到页面,500为内部服务器错误,这里可以百度HTTP 状态码。
如图,其中
res = requests.get(url=pojie_url)res = requests.get(pojie_url)
res = requests.get("https://www.52pojie.cn")
这三种方法,任选一种即可。res就结果的意思。
我们可以接着敲,print(res.text)
就能得到我们想要的html文本。


比较长,我这里只贴图一部分。我们在对这些文本进行 借助其他的Python模块,使用正则匹配或者html解析等方式可以得到我们想要的内容。

今天先说最简单的请求,有空再更新对付更复杂的 需要登录以及 添加headers 等操作。这里不再展开讲述。

名词 发表于 2020-2-16 13:30

支持大佬{:17_1087:}

feiying10256 发表于 2020-2-28 19:02

大佬我初学,非常感兴趣,期待更新

5260zl 发表于 2020-2-28 22:49

学习。。。。。

shi128862 发表于 2020-2-29 11:02

支持,简单易懂

for52sake 发表于 2020-3-1 13:09

学习了,requests一句搞定

楼台不望月 发表于 2020-4-27 14:23

lookcos 发表于 2020-5-1 09:12

楼台不望月 发表于 2020-4-27 14:23
请问下,我使用requests访问https会报错,报错信息如下:raise SSLError(e, request=request)
requests.ex ...

是因为你访问过于频繁吧

楼台不望月 发表于 2020-5-1 09:16

lookcos 发表于 2020-5-3 08:01

楼台不望月 发表于 2020-5-1 09:16
那应该怎么解决了?

用代{过}{滤}理IP池,或者慢点访问,线程数量控制好
页: [1] 2
查看完整版本: [爬虫基础] Requests教程: 让 HTTP 服务人类