Python爬虫

部署运行你感兴趣的模型镜像

安装所需库

首先,确保你已经安装了 requests 和 beautifulsoup4 库:

示例:抓取网页标题

假设我们想抓取某个网页的所有标题(例如,<h1><h2><h3> 等标签中的文本)。以下是一个简单的爬虫示例:

import requests
from bs4 import BeautifulSoup

def fetch_titles(url):
    try:
        # 发送请求获取网页内容
        response = requests.get(url)
        
        # 检查请求是否成功
        if response.status_code == 200:
            print(f"成功获取网页:{url}")
        else:
            print(f"请求失败,状态码:{response.status_code}")
            return
        
        # 解析网页内容
        soup = BeautifulSoup(response.text, 'html.parser')

        # 抓取所有的标题标签(h1, h2, h3等)
        titles = soup.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])

        if titles:
            print("页面中的标题:")
            for idx, title in enumerate(titles, 1):
                print(f"{idx}. {title.get_text(strip=True)}")
        else:
            print("未找到任何标题标签。")
    
    except requests.exceptions.RequestException as e:
        print(f"网络请求错误:{e}")
    except Exception as e:
        print(f"发生了一个错误:{e}")

# 使用示例
url = 'https://example.com'  # 请替换为你要抓取的目标网站
fetch_titles(url)

说明:

  1. requests.get(url):向指定的 URL 发送 GET 请求,获取网页的 HTML 内容。
  2. BeautifulSoup(response.text, 'html.parser'):使用 BeautifulSoup 库解析网页 HTML。
  3. soup.find_all([...]):查找所有匹配的 HTML 标签,在这个示例中我们抓取了标题标签 <h1> 到 <h6>
  4. title.get_text(strip=True):提取每个标题标签中的文本,并去除多余的空格。

示例:抓取网页中的所有链接

如果你想抓取网页中的所有链接(<a> 标签中的 href 属性),可以使用以下代码:

def fetch_links(url):
    try:
        # 发送请求获取网页内容
        response = requests.get(url)
        
        # 检查请求是否成功
        if response.status_code == 200:
            print(f"成功获取网页:{url}")
        else:
            print(f"请求失败,状态码:{response.status_code}")
            return
        
        # 解析网页内容
        soup = BeautifulSoup(response.text, 'html.parser')

        # 抓取所有的 <a> 标签
        links = soup.find_all('a')

        if links:
            print("页面中的所有链接:")
            for idx, link in enumerate(links, 1):
                href = link.get('href')
                if href:
                    print(f"{idx}. {href}")
        else:
            print("未找到任何链接。")
    
    except requests.exceptions.RequestException as e:
        print(f"网络请求错误:{e}")
    except Exception as e:
        print(f"发生了一个错误:{e}")

# 使用示例
url = 'https://example.com'  # 请替换为你要抓取的目标网站
fetch_links(url)

说明:

  1. soup.find_all('a'):抓取页面中所有的 <a> 标签,即网页中的所有超链接。
  2. link.get('href'):提取每个 <a> 标签的 href 属性,即链接的 URL。

扩展功能:保存抓取的数据

如果你希望将抓取的数据保存到文件(例如 CSV 或文本文件),你可以将抓取的内容写入文件。

将链接保存到 CSV 文件:

import csv

def save_links_to_csv(url):
    try:
        # 发送请求获取网页内容
        response = requests.get(url)

        # 检查请求是否成功
        if response.status_code == 200:
            print(f"成功获取网页:{url}")
        else:
            print(f"请求失败,状态码:{response.status_code}")
            return
        
        # 解析网页内容
        soup = BeautifulSoup(response.text, 'html.parser')

        # 抓取所有的 <a> 标签
        links = soup.find_all('a')

        # 如果找到链接,则保存到 CSV 文件
        if links:
            with open('links.csv', mode='w', newline='', encoding='utf-8') as file:
                writer = csv.writer(file)
                writer.writerow(["Link"])  # 写入表头
                
                for link in links:
                    href = link.get('href')
                    if href:
                        writer.writerow([href])
            print("所有链接已保存到 links.csv 文件。")
        else:
            print("未找到任何链接。")
    
    except requests.exceptions.RequestException as e:
        print(f"网络请求错误:{e}")
    except Exception as e:
        print(f"发生了一个错误:{e}")

# 使用示例
url = 'https://example.com'  # 请替换为你要抓取的目标网站
save_links_to_csv(url)

总结
以上是一个简单的 Python 爬虫示例。你可以根据需求进行扩展和修改,比如处理分页抓取、数据清洗、模拟用户行为等。爬虫的核心是发送 HTTP 请求并解析响应数据,常用的工具是 requests 和 BeautifulSoup,也可以使用更高级的工具如 Selenium(用于动态页面抓取)。

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Python爬虫的学习资源与使用方法 Python爬虫是一种高效的工具,用于自动化的网络信息采集。由于其丰富的库支持以及简洁易懂的语法特性,Python 成为了编写网络爬虫的最佳选择之一[^3]。 #### 学习Python爬虫的基础知识 学习Python爬虫不仅涉及理论知识的理解,还需要通过实际操作来加深印象。在移动设备上也可以轻松完成这些任务,因为手机端的Python环境配置较为简便,可以随时随地进行实践练习[^1]。 #### 推荐的Python爬虫教程列表 以下是几份高质量的Python爬虫教程推荐: - **基础篇** - 《一只小爬虫》[^2] - 《Python与简单网络爬虫的编写》[^2] - **进阶篇** - 《[Python]网络爬虫(五):urllib2的使用细节与抓站技巧》[^2] - 《[Python]网络爬虫(十):一个爬虫的诞生全过程(以山东大学绩点运算为例)》[^2] - **高级功能** - 《Python爬虫——抓取网页并解析HTML》[^2] - 《Python正则表达式指南》[^2] 除了上述具体的文章外,《Python爬虫新手指南及简单实战》也是一份非常适合初学者的内容,其中包含了详细的案例分析和代码演示[^3]。 #### 实践中的关键技术点 当开始构建自己的第一个爬虫项目时,需要注意以下几个方面: 1. 数据请求模块的选择,比如`requests`或内置的`urllib`。 2. HTML页面解析技术的应用,例如BeautifulSoup或者lxml库。 3. 对于复杂的数据提取需求,则可能需要用到正则表达式的辅助[^2]。 下面展示一段简单的爬虫脚本作为参考: ```python import requests from bs4 import BeautifulSoup url = 'https://example.com' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') titles = soup.find_all('h1') for title in titles: print(title.text.strip()) ``` 此段程序展示了如何访问目标网址,并从中提取所有的标题标签内容[^3]。 #### 工具扩展建议 如果计划进一步深入研究大数据量场景下的爬虫应用,那么像Pandas这样的数据分析框架将会非常有用。它可以方便地管理和转换所收集到的信息至结构化形式以便后续统计分析工作[^4]。 --- 相关问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值