响应功能
约 516 字大约 2 分钟
2025-01-14
介绍
响应功能模块负责处理从目标服务器或接口返回的数据,包括数据解析、错误处理、回调执行等。该模块提供了灵活的响应处理机制,帮助用户有效管理和利用获取的数据。
属性说明
属性名 | 类型 | 说明 |
---|---|---|
url | str | 响应的url |
headers | dict | 响应结果header |
data | dict | 响应使用的参数 |
cookies | dict | 响应返回的cookies |
text | str | 响应返回的结果(包含json响应) |
content | str | 响应返回的数据流 |
status_code | int | 响应返回的状态码 |
request_info | dict | 完整的请求信息 |
proxy | str | 响应所使用的ip代理 |
level | int | 响应所设置的请求优先级 |
retry_count | int | 响应所进行的重试次数 |
meta | dict | 从上层请求链路中所传递的参数 |
- 使用示例
# -*- coding: utf-8 -*-
import hunterx
from hunterx.spiders import MemorySpider
class FirstSpiderSpider(MemorySpider):
name = 'first_spider'
custom_settings = {
'PREFETCH_COUNT': 10 # 并发数
}
def __init__(self):
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
def start_requests(self):
url = 'https://www.example.com/'
yield hunterx.Requests(url=url, headers=self.header, callback=self.parse, level=1)
async def parse(self, response):
print(response.status_code)
if __name__ == '__main__':
start_run = FirstSpiderSpider()
start_run.run()
这里的 response.status_code
就是获取到的响应状态码
方法说明
方法名 | 获取方式 | 说明 |
---|---|---|
xpath | extract() | 使用xpath解析匹配到的所有符合规则的结果 |
extract_first | 使用xpath解析匹配到的第一个符合规则的结果 |
- 使用示例
# -*- coding: utf-8 -*-
import hunterx
from hunterx.spiders import MemorySpider
class FirstSpiderSpider(MemorySpider):
name = 'first_spider'
custom_settings = {
'PREFETCH_COUNT': 10 # 并发数
}
def __init__(self):
self.header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
}
def start_requests(self):
url = 'https://www.baidu.com/'
yield hunterx.Requests(url=url, headers=self.header, callback=self.parse, level=1)
async def parse(self, response):
title_list = response.xpath('//p/@title').extract()
print(title_list)
title = response.xpath('//p[1]/@title').extract_first('')
print(title)
if __name__ == '__main__':
start_run = FirstSpiderSpider()
start_run.run()
title_list = response.xpath('//p/@title').extract()
会获取所有html代码中p标签中的title属性,以列表形式返回title = response.xpath('//p/@title').extract_first('')
会获取在html中所有p标签中第一个匹配到title属性的值,匹配不到是为默认值空字符串