Python7个爬虫小案例详解(附源码)上篇
本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影、爬取糗事百科、爬取百度贴吧、爬取知乎、爬取博客园、爬取淘宝商品和爬取京东商品。每个案例都提供了完整的源码和详细的注释,方便读学习和实践。
1. 爬取豆瓣电影
本案例使用Python爬虫爬取豆瓣电影Top250的电影信息,包括电影名称、评分、导演、主演和简介等。爬虫使用requests库发送HTTP请求,使用BeautifulSoup库解析HTML文档,使用re库提取电影信息。
import requests
from bs4 import BeautifulSoup
import re
def get_html(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
return response.text
def get_movies(html):
soup = BeautifulSoup(html, 'html.parser')
movies = []
for li in soup.find_all('li', class_='clearfix'):
movie = {}
hd = li.find('div', class_='hd')
movie['title'] = hd.find('span', class_='title').string
movie['score'] = li.find('span', class_='rating_num').string
movie['director'] = re.findall('导演: (.*?)\n', li.find('div', class_='bd').p.string)[0]
movie['actors'] = re.findall('主演: (.*?)\n', li.find('div', class_='bdp.string)[0]
movie['desc'] = li.find('span', class_='inq').string
movies.append(movie)
return movies
if __name__ == '__main__':
url = 'https://movie.douban.com/top250'
html = get_html(url)
movies = get_movies(html)
for movie in movies:
print(movie)
在这个案例中,我们首先定义了一个get_html()函数,用于发送HTTP请求并返回响应的HTML文档。然后定义了一个get_movies()函数,用于解析HTML文档并提取电影信息。最后,在主函数中调用这两个函数,获取电影信息并输出。
2. 爬取糗事百科
本案例使用Python爬虫爬取糗事百科的段子信息,包括段子内容、作者和点赞等。爬虫使用requests库发送HTTP请求,使用正则表达式提取段子信息。
import requests
import re
def get_html(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
response.encoding = 'utf-8'
return response.text
def get_jokes(html):
pattern = re.compile('<div class="content">\n<span>(.*?)</span>\n</div>.*?<div class="stats">\n<span class="stats-vote"><i class="number">(.*?)</i>', re.S)
jokes = re.findall(pattern, html)
return jokes
if __name__ == '__main__':
url = 'https://www.qiushibaike.com/text/'
html = get_html(url)
jokes = get_jokes(html)
for joke in jokes:
print(joke[0], joke[1])
在这个案例中,我们同样定义了一个get_html()函数,用于发送HTTP请求并返回响应的HTML文档。然后定义了一个get_jokes()函数,使用正则表达式提取段子信息。最后,在主函数中调用这两个函数,获取段子信息并输出。
以上是本文介绍的两个案例,其中第一个案例爬取了豆瓣电影Top250的电影信息,第二个案例爬取了糗事百科的段子信息。这两个案例都使用了requests库发送HTTP请求,使用BeautifulSoup库解析HTML文档,使用正则表达式提取信息。读者可以根据自己的需求进行修改和扩展。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python7个爬虫小案例详解(附源码)上篇 - Python技术站