Python爬虫是通过编写程序来自动化访问网页并提取内容的过程。一般而言,爬虫分为以下几个步骤:
1.发送HTTP请求并获取页面内容
爬虫首先发送HTTP请求到目标网站,请求相应的页面。可以使用Python中的requests或urllib库来完成HTTP请求过程,其中requests更为方便、简单易用。
以使用requests库爬取“豆瓣电影Top250”的页面为例:
import requests
url = 'https://movie.douban.com/top250' # 豆瓣电影Top250页面
response = requests.get(url) # 发送GET请求,并获取响应内容
print(response.text) # 输出页面HTML内容
2.解析HTML并提取所需信息
当获取到网页内容后,爬虫需要进一步解析HTML,并提取所需信息。一般而言,可以使用Python中的BeautifulSoup或正则表达式来解析HTML。
以使用BeautifulSoup来解析上述豆瓣电影Top250页面为例:
import requests
from bs4 import BeautifulSoup
url = 'https://movie.douban.com/top250' # 豆瓣电影Top250页面
response = requests.get(url) # 发送GET请求,并获取响应内容
soup = BeautifulSoup(response.text, 'html.parser') # 将响应内容交由BeautifulSoup处理,生成解析对象
# 解析对象提取需要的信息,并输出
for li in soup.find_all('li'):
title = li.span.string
stars = li.find_all('span', class_='rating_num')
rating = stars[0].string if len(stars) > 0 else '暂无评分'
print(f'电影名称:{title},评分:{rating}')
3.持久化数据
最后,爬虫需要将所提取的信息进行持久化存储,一般采用JSON或CSV格式进行存储。用户可以选择将数据存储到本地文件或者数据库中。
以将上述豆瓣电影Top250页面提取的信息保存到本地文件为例:
import requests
from bs4 import BeautifulSoup
import json
url = 'https://movie.douban.com/top250' # 豆瓣电影Top250页面
response = requests.get(url) # 发送GET请求,并获取响应内容
soup = BeautifulSoup(response.text, 'html.parser') # 将响应内容交由BeautifulSoup处理,生成解析对象
movies = [] # 声明一个列表存储解析结果
# 解析对象提取需要的信息,并添加至movies列表
for li in soup.find_all('li'):
title = li.span.string
stars = li.find_all('span', class_='rating_num')
rating = stars[0].string if len(stars) > 0 else '暂无评分'
movies.append({'title': title, 'rating': rating})
# 将movies列表转换成JSON字符串,并保存至本地文件movies.json
with open('movies.json', 'w', encoding='utf-8') as f:
json.dump(movies, f, ensure_ascii=False, indent=2)
总之,Python爬虫的工作原理是通过发送HTTP请求获取网页内容,然后解析HTML并提取所需信息,最后将信息进行持久化存储。以上是一个简单的示例,爬虫的工作原理实质较复杂,具体操作时需根据实际情况进行适当调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫的工作原理 - Python技术站