python七大爬虫程序
Python 爬虫程序可以用来抓取网页数据,以下是一些常见的Python爬虫框架和示例代码:
- 使用requests库和BeautifulSoup库:
import requests
from bs4 import BeautifulSoup
url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取数据
data = soup.find_all('div', {'class': 'my-data'})
- 使用Scrapy框架:
# 安装Scrapy
pip install scrapy
# 创建Scrapy项目和爬虫
scrapy startproject myproject
cd myproject
scrapy genspider myspider example.com
在myspider.py
中编写爬虫逻辑:
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
allowed_domains = ['example.com']
start_urls = ['http://example.com']
def parse(self, response):
# 提取数据
for div in response.css('div.my-data'):
yield {
'data': div.css('a::text').extract_first(),
}
# 跟进下一页链接
next_page_url = response.css('a.next::attr(href)').extract_first()
if next_page_url is not None:
yield response.follow(next_page_url, self.parse)
- 使用Selenium库进行JavaScript渲染的网页爬取:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://example.com')
# 获取JavaScript渲染后的页面源码
html_content = driver.page_source
- 使用aiohttp库进行异步爬取:
import aiohttp
from bs4 import BeautifulSoup
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
html = await fetch(session, 'http://example.com')
soup = BeautifulSoup(html, 'html.parser')
# 提取数据
data = soup.find_all('div', {'class': 'my-data'})
# 运行在 asyncio 事件循环中
import asyncio
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
- 使用pyspider 框架:
# 安装pyspider
pip install pyspider
# 运行pyspider
pyspider all
在Web界面上创建项目,并编写爬虫脚本。
- 使用Google的goolgeapis进行爬取
- 使用youtube-dl进行视频或音频的爬取
这些方法可以用来爬取网页数据,具体使用哪种取决于网站的结构和你的需求。每种方法都有优点和适用范围,需要根据实际情况选择。
评论已关闭