分享Python7个爬虫小案例
以下是7个Python爬虫案例的代码,每个案例都包括必要的代码和简要的说明。
- 简单的网页爬虫
import requests
url = 'http://example.com'
response = requests.get(url)
print(response.text)
说明:这是一个简单的网页爬虫案例,使用requests库获取网页内容。
- 使用BeautifulSoup解析HTML
from bs4 import BeautifulSoup
import requests
url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.text)
说明:这个案例使用了BeautifulSoup库来解析HTML,并提取了页面的标题。
- 使用Selenium进行JavaScript渲染的网页爬虫
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://example.com')
print(driver.page_source)
driver.quit()
说明:这个案例使用了Selenium库和Chrome驱动来获取能够被JavaScript渲染的网页的源代码。
- 使用Scrapy框架
scrapy startproject myspider
cd myspider
scrapy genspider example example.com
说明:这个案例使用了Scrapy框架来创建一个爬虫项目和爬虫。需要在终端运行上述命令,然后编辑生成的代码文件来实现具体的爬取逻辑。
- 使用pyspider框架
from pyspider.libs.base_handler import *
class Handler(BaseHandler):
crawl_config = {
}
@every(minutes=24 * 60)
def on_start(self):
self.crawl('http://example.com', callback=self.index_page)
@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
for each in response.doc('a[href^="http"]').items():
self.crawl(each.attr.href, callback=self.detail_page)
def detail_page(self, response):
return {
"url": response.url,
"title": response.doc('title').text(),
}
说明:这个案例使用了pyspider框架来创建一个爬虫。需要在pyspider的web界面上编写或修改代码。
- 异步爬虫
import asyncio
from aiohttp import ClientSession
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with ClientSession() as session:
html = await fetch(session, 'http://example.com')
print(html)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
说明:这个案例使用了asyncio和aiohttp库来编写异步的网络请求,这在处理大量网络请求时能提高效率。
- 分布式爬虫
from scrapy import cmdline
cmdline.execute(['scrapy', 'crawl', 'example', '-s', 'JOBDIR=crawls/myspider'])
说明:这个案例使用了Scrapy的命令行工具来启动一个分布式爬虫项目。需要在终端运行上述命令,其中'example'是爬虫的名字,'myspider'是分布式爬虫的工作目录。
这些案例都是爬虫的基
评论已关闭