Python脚本爬取目标网站上的所有链接

ops/2024/10/16 0:16:35/

一、爬取后txt文件保存

需要先pip install requests和BeautifulSoup库

python">import requests
from bs4 import BeautifulSoup# 定义要爬取的新闻网站URL
url = 'https://www.chinadaily.com.cn/'  # China Daily 网站# 发送请求获取页面内容
response = requests.get(url)# 检查请求是否成功
if response.status_code == 200:print('Successfully retrieved the website.')# 解析网页内容soup = BeautifulSoup(response.text, 'html.parser')# 打开一个文件以写入爬取的数据with open('news_data.txt', 'w', encoding='utf-8') as f:# 选择网站上合适的新闻标签for item in soup.find_all('a', href=True):  # 这里使用<a>标签,因为它包含链接title = item.get_text().strip()  # 获取标题link = item['href']  # 获取链接# 过滤掉无效的标题或链接if title and 'http' in link:# 将标题和链接写入文件f.write(f'链接标题: {title}\n链接地址: {link}\n\n')print("Data saved to 'news_data.txt'.")
else:print(f'Failed to retrieve the website. Status code: {response.status_code}')

二、 爬取后csv文件保存

python">import requests
from bs4 import BeautifulSoup
import csv# 定义要爬取的新闻网站URL
url = 'https://www.chinadaily.com.cn/'  # 示例网站# 发送请求获取页面内容
response = requests.get(url)# 手动设置编码为utf-8(如果页面是使用utf-8编码)
response.encoding = 'utf-8'  # 确保使用正确的编码格式# 检查请求是否成功
if response.status_code == 200:print('Successfully retrieved the website.')# 解析网页内容soup = BeautifulSoup(response.text, 'html.parser')# 打开一个CSV文件以写入爬取的数据with open('news_data.csv', 'w', newline='', encoding='utf-8') as f:writer = csv.writer(f)writer.writerow(['Title', 'Link'])  # 写入标题行# 查找所有包含链接的<a>标签for item in soup.find_all('a', href=True):title = item.get_text().strip()  # 获取标题link = item['href']  # 获取链接# 过滤掉无效的标题或链接if title and link:writer.writerow([title, link])print("Data saved to 'news_data.csv'.")
else:print(f'Failed to retrieve the website. Status code: {response.status_code}')


http://www.ppmy.cn/ops/126184.html

相关文章

杨中科 .netcore Linq 。一前期准备知识

为什么要学Linq 一、为什么要学LINQ? 让数据处理变得简单: 统计一个字符串中每个字母出现的频率(忽略大小写)&#xff0c;然后按照从高到低的顺序输出出现频率高于2次的单词和其出现的频率。 var itemss.Where(c >char.lsLetter(c))//过滤非字母 .Select(c>char.ToLo…

Qt 每日面试题 -8

71、了解Qt的QPointer吗? QPointer只能用于指向QObject及派生类的对象。 当一个QObject或派生类对象被删除后&#xff0c;QPointer能自动将其内部的指针设置为0 &#xff0c;这样在使用QPointer之前就可以判断一下是否有效。QPointer对象超出作用域时&#xff0c;并不会删除它…

Linux:进程控制(三)——进程程序替换

目录 一、概念 二、使用 1.单进程程序替换 2.多进程程序替换 3.exec接口 4.execle 一、概念 背景 当前进程在运行的时候&#xff0c;所执行的代码来自于自己的源文件。使用fork创建子进程后&#xff0c;子进程执行的程序中代码内容和父进程是相同的&#xff0c;如果子进…

Ubuntu+CLion+OpenCV+NCNN+Squeezenet 从源码编译到代码输出全流程记录

✨博客主页&#xff1a;王乐予&#x1f388; ✨年轻人要&#xff1a;Living for the moment&#xff08;活在当下&#xff09;&#xff01;&#x1f4aa; &#x1f3c6;推荐专栏&#xff1a;【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 &#x1f63a;一、引言…

P1001 | 禾木切西瓜

P1001 | 禾木切西瓜 题目描述 酷热的夏天&#xff0c;禾木从冰箱中拿出一只西瓜&#xff0c;想要将它一分为二&#xff0c;用勺子舀着吃&#xff0c;但作为一个资深的吃货&#xff0c;禾木认为一只好西瓜&#xff0c;一分为二后&#xff0c;两部分的重量都应该为偶数。 例如一…

在 Jupyter Notebook 中,无法看到特定 Conda 环境的内核

问题概述 在 Jupyter Notebook 中&#xff0c;无法看到特定 Conda 环境的内核&#xff0c;导致无法在该环境下运行代码。这通常是由于内核未正确注册到 Jupyter 所致。 常见原因 未安装 ipykernel&#xff1a;每个 Conda 环境需要安装 ipykernel 才能作为 Jupyter 内核使用。…

【鱼类识别】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面+TensorFlow

一、介绍 鱼类识别系统。使用Python作为主要编程语言开发&#xff0c;通过收集常见的30种鱼类&#xff08;‘墨鱼’, ‘多宝鱼’, ‘带鱼’, ‘石斑鱼’, ‘秋刀鱼’, ‘章鱼’, ‘红鱼’, ‘罗非鱼’, ‘胖头鱼’, ‘草鱼’, ‘银鱼’, ‘青鱼’, ‘马头鱼’, ‘鱿鱼’, ‘鲇…

面试22222

好的&#xff0c;我会逐步解释这些面试问题&#xff0c;并给出一些应答建议。我们先从第一个问题开始&#xff1a; 1. 介绍一下你的学术背景和工作经验&#xff0c;以及为什么对生物信息学感兴趣。 回答思路&#xff1a; 首先简单概述你的学术背景&#xff0c;比如你的专业、…