Python网络爬虫-基本原理(1)

1,483 阅读2分钟

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

爬虫基本原理

1.网页请求的过程

(1)Request,每个展示在我们面前的网页都必须经过这一步,也就是向服务器发送访问请求。 在python中需要导入requests模块:

import requests

(2)Response,服务器接收到用户请求后,会验证请求的有效性,然后向用户发送响应的内容;用户接受服务器响应的内容,将内容展示出来,这就是我们熟悉的网页请求。

2.网页请求的方式

(1)GET:最常见的方式,一般用于获取或查询资源信息,参数设置在URL中。

(2)POST:通过request body传递参数,可发送请求的信息远大于GET方式。

2.1 用GET方式抓取数据

下面用Get的方法抓一下掘金的首页试试,代码如下:

import requests
url = 'https://juejin.cn/'
strhtml = requests.get(url)
print(strhtml.text)

返回结果如下:

image.png

后面文章会补充HTML相关的知识。

2.2 使用POST方式抓取数据

继续用掘金首页来试试,按F12进入开发者模式,单机“NETWORK”选项卡,

image.png

行,翻车,没必要用掘金首页,去找个翻译网站试试。

在翻译网站搜索掘金,如图,可以看到请求方法为POST

image.png

首先,将Headers中的URL复制出来,并赋值给url,代码如下:

url = "https://fanyi.baidu.com/v2transapi?from=zh&to=en"

POST请求获取数据的方式不同于GET,GET可以通过URL传递参数,而POST参数则需要放在请求实体里。

image.png

将FORM DATA的请求参数做一个字典,接下来用requests.post()方法请求表单数据,代码如下:

import requests
response = requests.post(url,data = Form_data)

将字符串格式的数据转换成JSON格式的数据,并根据数据结构提取数据,将翻译结果打印出来,代码如下。

import json
content = json.loads(response.text)
print(content['translateResult'][0][0]['tgt'])

网页的获取与响应就写到这里,如果大家有更好的方法,请分享一下!