如何查找标题数据和名称? (Python的请求)

问题描述 投票:2回答:1

我想在登录站点上使用web scrape的请求。我已经使用selenium完成了代码,但这样做非常不方便而且速度慢,因为我希望将其公开(每个用户都必须下载chrome驱动程序)。

问题是,网站有多个请求,我没有处理该数据和提取标题数据和名称的经验。任何帮助都很棒,谢谢。

networking python-requests
1个回答
2
投票

[前提]

使用请求模块,您可以通过以下方式发送请求:

import requests

url = "http://www.example.com"  # request url

headers = {  # headers dict to send in request
  "header_name": "headers_value",
 }

params = {  # params to be encoded in the url
  "param_name": "param_value",
}

data = {  # data to send in the request body
  "data_name": "data_value",
}

# Send GET request.
requests.get(url, params=params, headers=headers)

# Send POST request.
requests.post(url, params=params, headers=headers, data=data)

执行请求后,您可以从响应对象中获取大量信息:

>>> import requests

# We perform a request and get the response object.
>>> response = requests.get(url, params=params, headers=headers)
>>> response = requests.post(url, params=params, headers=headers, data=data)

>>> response.status_code  # server response status code
>>> 200  # eg.

>>> response.request.method
>>> 'GET'  # or eventually 'POST'

>>> response.request.headers # headers you sent with the request
>>> {'Accept-Encoding': 'gzip, deflate, br'}  # eg.

>>> response.request.url  # sent request url
>>> 'http://www.example.com'

>>> response.response.body
>>> 'name=value&name2=value2' # eg.

总之,您可以从响应对象中检索浏览器中Dev Tools中可以找到的所有信息。你什么都不需要。 Dev Tools view Dev Tool view 2

发送GET或POST请求后,您可以从Dev Tools检索信息:

一般来说:

请求网址:您发送请求的网址。对应response.request.url请求方法:对应response.request.method状态码:对应response.status_code

在响应标题中:

您找到与response.headers对应的响应标头

例如。连接:Keep-Alive,Content-Length:0,Content-Type:text / html;字符集= UTF-8 ...

在请求标题中:

您可以找到与response.request.headers对应的请求标头

在表单数据中:

您可以在requests.post中找到使用data关键字传递的数据。对应于response.request.body

© www.soinside.com 2019 - 2024. All rights reserved.