爬虫笔记0

news/2024/10/5 22:57:34/

问题梳理:

  • <dl>:Definition List(定义列表)

  • <dt>:Definition Term(一般放标题)

  • <dd>:Definition Description(定义列表项,数据所在)

  • <ul>:Unordered List(无序列表)

  • <li>:List Item(列表项,数据所在)

*爬虫流程

  1. 发送请求(requests)(看url,header,*参数)
  2. 获取响应
  3. 解析数据(rexpathcss选择器),parsel集成三种方式
    1. re:re模块
    2. xpath:lxml模块
    3. css选择器:bs4模块
  4. 保存数据

* headers怎么找

抓包看请求该接口的参数,对照填写

需要传递的

  • User-Agent:模拟浏览器身份标识
  • Host:域名
  • Referer:访问来源
  • Cookie:验证身份(user= 100),保持登录状态

*翻页的用什么函数

抓包找接口,看数据来自哪个接口,模拟浏览器发送相同的请求

*后台返回的数据格式

1、后台传递样式 + 数据

css选择器

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>段落文本</title>
</head><body><h2 align="center">小说标题:鸿蒙主宰</h2><p align="left">混沌初开,乾坤始奠,武道起始。诸雄争霸!强者如云!世人只知源始一族,为天下共尊,却不知其为鹰犬。后世秦羽,封印绕身,一朝化龙.......</p>
</body>
</html>

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传]https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=images%2Fimage-20240527205556956.png&pos_id=img-8WsJ6HCJ-1719992708245))

2、后台只传递数据,样式由前端编写,统一组装

后端传递的

{"title":"鸿蒙主宰","content":"混沌初开,乾坤始奠,武道起始。诸雄争霸!强者如云!世人只知源始一族,为天下共尊,却不知其为鹰犬。后世秦羽,封印绕身,一朝化龙......."
}

前端编写的

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>段落文本</title>
</head><body><h2 align="center">小说标题:{{title}}</h2><p align="left">{{content}}</p>
</body>
</html>

如何下载后合并成一个TXT

import os
import redef merge_txt_files(directory, output_file):# 获取指定目录中的所有文件files = os.listdir(directory)# 使用正则表达式匹配文件名格式 1-xxx.txt, 2-xxx.txt, ...pattern = re.compile(r'^(\d+)-.+\.txt$')# 创建一个列表来存储匹配的文件和它们的序号matched_files = []for file in files:match = pattern.match(file)if match:# 获取文件的序号seq_num = int(match.group(1))matched_files.append((seq_num, file))# 按序号排序matched_files.sort()# 打开输出文件with open(output_file, 'w', encoding='utf-8') as outfile:for seq_num, filename in matched_files:file_path = os.path.join(directory, filename)with open(file_path, 'r', encoding='utf-8') as infile:content = infile.read()outfile.write(content)outfile.write('\n')  # 每个文件内容后添加换行符# 示例用法
# directory_path = 'path/to/your/directory'
directory_path = 'test'
# output_file_path = 'path/to/your/output_file.txt'
output_file_path = 'out.txt'
merge_txt_files(directory_path, output_file_path)
print('执行完成')

selector.css函数怎么使用? && Parsel怎么使用?

https://spa3.scrape.center/

iles(directory_path, output_file_path)
print(‘执行完成’)

## selector.css函数怎么使用? && Parsel怎么使用?略https://spa3.scrape.center/

http://www.ppmy.cn/news/1473498.html

相关文章

Kafka如何防止消息丢失

持久化存储&#xff1a; Kafka 使用基于日志的存储模型。每个主题的分区都会被分割成多个片段&#xff08;Segment&#xff09;&#xff0c;每个片段都是一个可追加的日志文件。生产者发送的每条消息都会被追加到对应分区的当前活跃片段&#xff08;active segment&#xff09;…

CTF常用sql注入(三)无列名注入

0x06 无列名 适用于无法正确的查出结果&#xff0c;比如把information_schema给过滤了 join 联合 select * from users;select 1,2,3 union select * from users;列名被替换成了1,2,3&#xff0c; 我们再利用子查询和别名查 select 2 from (select 1,2,3 union select * f…

VSCode使用Makefile管理工程

Visual Studio Code&#xff08;VSCode&#xff09; 是一个高度可定制的代码编辑器&#xff0c;支持广泛的编程语言和构建系统。通过使用 Makefile 和适当的扩展&#xff0c;可以轻松地使用 VSCode 来管理基于 Make 的项目。以下是详细步骤&#xff0c;帮助你在 VSCode 中使用 …

unix高级编程系列之文件I/O

背景 作为linux 开发者&#xff0c;我们不可避免会接触到文件编程。比如通过文件记录程序配置参数&#xff0c;通过字符设备与外设进行通信。因此作为合格的linux开发者&#xff0c;一定要熟练掌握文件编程。在文件编程中&#xff0c;我们一般会有两类接口函数&#xff1a;标准…

【HICE】dns正向解析

1.编辑仓库 2.挂载 3.下载软件包 4.编辑named.conf 5.编辑named.haha 6.重启服务 7.验证本地域名是否解析

MinIO:开源对象存储解决方案的领先者

MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统&#xff0c;致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释&#xff1a;MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口&#xff0c;非常适…

firewalld 高级配置

一&#xff1a;firewalld 高级配置 1.1:关于iptables的知识 IP 数据包过滤系统是一种功能强大的工具&#xff0c;可用于添加、编辑和除去规则&#xff0c;这些规则是在做数据包过滤决定时&#xff0c;防火墙所遵循和组成的规则。这些规则存储在专用的数据包过滤表中&#xf…

【优化论】约束优化算法

约束优化算法是一类专门处理目标函数在存在约束条件下求解最优解的方法。为了更好地理解约束优化算法&#xff0c;我们需要了解一些核心概念和基本方法。 约束优化的核心概念 可行域&#xff08;Feasible Region&#xff09;&#xff1a; 比喻&#xff1a;想象你在一个园艺场…