Python7个爬虫小案例详解(附源码)上篇

yizhihongxing

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技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 详解Python 用virtualenv隔离项目依赖关系

    为了隔离不同项目的依赖关系,我们可以使用Python中的virtualenv工具。本文将详细介绍如何使用virtualenv创建虚拟环境并管理项目的依赖关系。 什么是virtualenv virtualenv是Python中的一个工具,用于创建独立的Python环境。每个虚拟环境都可以拥有自己的Python解释器以及自己的项目依赖库,从而保证不同的项目之间的…

    python-answer 2023年3月25日
    00
  • Python第三方包之DingDingBot钉钉机器人

    我很乐意给您详细讲解一下“ Python 第三方包之 DingDingBot 钉钉机器人”的使用攻略。 介绍 钉钉机器人是钉钉提供的一个机器人接口,通过该接口可以将自定义信息发送到指定的群或个人中。Python 的第三方库 dingtalk-sdk 就提供了使用钉钉机器人的 API 接口和封装方法,可以方便地将自定义消息传递到钉钉中。 安装 使用 pip 可…

    python 2023年5月23日
    00
  • python删除某个字符

    当我们在使用Python进行字符串操作时,有时候需要删除某个字符,这时可以使用Python提供的字符串方法或者正则表达式来完成。下面是详细讲解“Python删除某个字符”的攻略: 使用字符串方法删除字符 在Python中,我们可以使用字符串方法replace()来删除指定的字符。该方法的语法如下: str.replace(old, new[, count])…

    python 2023年6月5日
    00
  • Python之random库的常用函数有哪些

    接下来我会详细讲解“Python之random库的常用函数有哪些”的完整攻略。 一、背景介绍 Python之random库是Python标准库中的一个模块,主要用来生成随机数。它提供了各种生成随机数的函数,包括生成整数、浮点数、随机序列等。其中,常用的函数包括: 二、常用函数介绍 1. random() random()函数用于生成0到1之间的随机浮点数。示…

    python 2023年6月3日
    00
  • Python构建网页爬虫原理分析

    Python构建网页爬虫原理分析 前言 随着互联网的发展,数据变得越来越重要。然而,大量的数据通常分散在不同的网站上,如果我们需要获取这些数据,手动复制粘贴不仅费时费力,而且效率极低。此时,用Python构建一个网页爬虫就显得十分有用了。 本文将介绍Python构建网页爬虫的原理和基本步骤。 原理 Python构建网页爬虫的原理可以简单概括为以下几个步骤: …

    python 2023年6月6日
    00
  • Python性能分析工具pyinstrument提高代码效率

    在进行Python开发时,我们经常需要优化代码的性能,以提高代码的效率和可靠性。Python性能分析工具pyinstrument可以帮助我们分析代码的性能瓶颈,并提供优化建议。本文将详细讲解如何使用pyinstrument提高代码效率,包括安装pyinstrument、使用pyinstrument分析代码性能和优化代码。 安装pyinstrument 在开始…

    python 2023年5月15日
    00
  • Python使用grequests并发发送请求的示例

    以下是关于“Python使用grequests并发发送请求的示例”的完整攻略: Python使用grequests并发发送请求的示例 在Python中,我们可以使用grequests模块实现并发发送请求。grequests是requests模块的异步版本,可以实现高效的并发请求。以下是Python使用grequests并发发送请求的示例。 安装greques…

    python 2023年5月15日
    00
  • Python之Selenium自动化浏览器测试详解

    标题:Python之Selenium自动化浏览器测试详解 介绍 本篇文章将详细讲解如何使用Python和Selenium实现自动化浏览器测试。Selenium是一个流行的自动化测试工具,可以用于模拟用户在浏览器中的行为,例如点击、输入文本、滚动等等。我们将使用Python编写Selenium测试脚本,通过实例演示如何实现浏览器自动化测试。 环境搭建 Pyth…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部