Python爬虫基础
Python爬虫是一种自动化程序,用于从网站提取数据。常见的库包括requests、BeautifulSoup、Scrapy和selenium。爬虫的核心流程涉及发送HTTP请求、解析响应内容以及存储数据。
requests库用于发送HTTP请求并获取响应:
import requests
response = requests.get('https://example.com')
print(response.text)
BeautifulSoup用于解析HTML或XML文档:
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
title = soup.find('h1').text
动态内容处理
当页面内容通过JavaScript动态加载时,selenium可以模拟浏览器行为:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://example.com')
dynamic_content = driver.find_element_by_id('dynamic').text
driver.quit()
数据存储
提取的数据可以存储为多种格式。使用pandas保存为CSV:
import pandas as pd
data = {'title': [title], 'content': [dynamic_content]}
df = pd.DataFrame(data)
df.to_csv('output.csv', index=False)
反爬策略应对
网站可能设置反爬机制,需添加请求头或延迟:
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get('https://example.com', headers=headers)
import time
time.sleep(2) # 延迟2秒
Scrapy框架进阶
Scrapy适合大规模爬取项目。创建爬虫项目:
scrapy startproject myproject
cd myproject
scrapy genspider example example.com
定义爬虫类并处理数据:
import scrapy
class ExampleSpider(scrapy.Spider):
name = 'example'
start_urls = ['https://example.com']
def parse(self, response):
yield {'title': response.css('h1::text').get()}
运行爬虫并将结果保存为JSON:
scrapy crawl example -o output.json
3600

被折叠的 条评论
为什么被折叠?



