Python中有多种流行的爬虫库和框架,以下是一些常见的选项以及简单的代码示例:
1. Requests-HTML
requests-html
是一个用户友好的库,它使用pyquery
和requests
来解析HTML页面。
安装:
pip install requests-html
示例代码:
from requests_html import HTMLSession
session = HTMLSession()
r = session.get('https://example.com')
# 解析页面
parsed_html = r.html.html()
print(parsed_html.find('title').text)
2. Requests
requests
是一个简单易用的HTTP库,通常与BeautifulSoup
结合使用来解析HTML。
安装:
pip install requests beautifulsoup4
示例代码:
import requests
from bs4 import BeautifulSoup
response = requests.get('https://example.com')
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.text)
3. Scrapy
Scrapy
是一个快速的、高层次的web爬虫框架,用于抓取网站并从页面中提取结构化的数据。
安装:
pip install scrapy
示例代码(定义一个简单的爬虫):
import scrapy
class ExampleSpider(scrapy.Spider):
name = 'example_spider'
start_urls = ['https://example.com']
def parse(self, response):
for title in response.css('title::text').extract():
yield {
'title': title.strip()}
# 运行爬虫
# scrapy crawl example_spider
4. Selenium
Selenium
是一个用于自动化web应用程序测试的工具,也常用于爬取需要JavaScript渲染的页面。
安装:
pip install selenium
示例代码:
from selenium import webdriver
driver = webdriver.Chrome('/path/to/chromedriver')
driver.get('https://example.com')
print(driver.title)
driver.quit()
5. PyQuery
PyQuery
是一个使处理HTML文档变得简单的库,它提供了类似jQuery的选择器。
安装:
pip install pyquery
示例代码:
from pyquery import PyQuery as pq
doc = pq(filename='example.html')
title = doc('title').text()
print(title)
6. MechanicalSoup
MechanicalSoup
是一个Python库,用于自动化与网站交互的行为,如登录、填写表单等。
安装:
pip install MechanicalSoup
示例代码:
from mechanicalsoup import Browser
browser = Browser()
response = browser.get('https://example.com/login')
# 假设登录表单的用户名字段是'username',密码字段是'password'
browser.select_form(nr=0)
browser['username'] = 'your_username'
browser['password'] = 'your_password'
response = browser.submit_selected()
print(response.text)
7. Twill
Twill
是一个简单的命令行web浏览器,用于Python脚本,用于自动化web测试。
安装:
pip install twill
示例代码(命令行):
twill -b show -n "https://example.com"