当前位置: 首页 > news >正文

Python爬虫入门:从零到数据采集

Python爬虫基础指南

Python爬虫是自动化获取网络数据的技术,广泛应用于数据采集、市场分析等领域。以下是核心实现步骤:

1. 核心库选择
import requests  # 发送HTTP请求
from bs4 import BeautifulSoup  # HTML解析
import pandas as pd  # 数据存储

2. 基础爬取流程
# 发送请求
response = requests.get("https://example.com/books")
response.encoding = 'utf-8'  # 设置编码# 解析HTML
soup = BeautifulSoup(response.text, 'html.parser')# 数据提取示例
book_titles = [h2.text for h2 in soup.select('.book-title')]
book_prices = [float(div.text.strip('¥')) for div in soup.select('.price')]# 存储数据
df = pd.DataFrame({'书名': book_titles, '价格': book_prices})
df.to_csv('book_data.csv', index=False)

3. 关键技巧
  • 反爬应对

    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)','Cookie': 'sessionid=abc123'
    }
    response = requests.get(url, headers=headers)
    

  • 动态页面处理(使用Selenium):

    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get(url)
    dynamic_content = driver.find_element_by_class('js-loaded-data').text
    

4. 完整案例:豆瓣图书爬虫
def douban_spider():url = "https://book.douban.com/top250"res = requests.get(url, headers={'User-Agent': 'Mozilla/5.0'})soup = BeautifulSoup(res.text, 'lxml')books = []for item in soup.select('.item'):title = item.select_one('.pl2 a')['title']rating = item.select_one('.rating_nums').textbooks.append((title, float(rating)))return pd.DataFrame(books, columns=['书名', '评分'])df = douban_spider()
df.to_excel('豆瓣图书TOP250.xlsx')

5. 注意事项
  1. 遵守规则
    • 检查robots.txt(如https://site.com/robots.txt
    • 设置请求间隔:time.sleep(random.uniform(1,3))
  2. 异常处理
    try:response = requests.get(url, timeout=10)
    except (requests.ConnectionError, requests.Timeout) as e:print(f"请求失败: {str(e)}")
    

  3. 数据清洗
    # 去除空白字符
    clean_text = re.sub(r'\s+', ' ', raw_text).strip()
    

提示:对于复杂网站建议使用Scrapy框架,其内置的异步处理、管道机制和中间件能显著提升效率。

http://www.dtcms.com/a/499713.html

相关文章:

  • 免费创建app网站网站推广的基本方法是哪四个
  • 建设网站需要的资金清单建设银行网站会员怎么用
  • 深度学习——YOLO 原理与各版本演化
  • 实验室安全准入考试答案
  • 设计网络网站郑州专业公司网站建设公司
  • 17做网店一样的网站html投票代码
  • 网站建设与维护薪资网页版梦幻西游答题器
  • Form表单._表单元素(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • 合肥企业做网站wap游戏中心
  • React 02
  • 营销网站定制深圳设计展2022
  • MPLS技术详解3:LDP实验与配置实践
  • 上海网站seo设计百度地图电脑版网页
  • 建设 政务数据共享网站网页搜索功能怎么实现
  • 手写Spring第4弹: Spring框架进化论:15年技术变迁:从XML配置到响应式编程的演进之路
  • [优选算法专题四.前缀和——NO.26二维前缀和]
  • 青岛做网站皆赴青岛博网站建设方案论文1500
  • SQL入门:同环比计算法全解析
  • 基于51单片机的12路病房呼叫系统设计与实现
  • Netty面试重点-2
  • 手机网站报价表贵州省住房和城乡建设部网站
  • 网站建设名深圳市seo上词多少钱
  • Vue+element ui导入组件封装——超级优雅版
  • Orleans StreamInstruments 作用分析
  • 全虚拟化、半虚拟化和SR-IOV直通-三种I/O虚拟化技术的核心差异
  • 《打造国漫唐风沉浸感:角色衣袂物理模拟的场景化技术方案》
  • 【三维分割】LangSplatV2:高维的语言3DGS,快到450+FPS
  • Kubernetes(k8s) —— 简介
  • 雅安工程交易建设网站建高级网站
  • 不止于S3:RustFS的多协议网关之路,如何平滑对接HDFS与WebDAV?