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

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两个列表进行全组合操作的三种方式

    以下是“关于Python两个列表进行全组合操作的三种方式”的完整攻略。 1. 全组合操作的概述 全组合操作是指将两个列表中的元素进行全排列组合,生成一个的列表。在Python中,我们可以使用三种方式来实现全组操作。 2. 方式一:使用itertools.product()函数 Python中的itertools模块提供了一个product()函数可以用来实现…

    python 2023年5月13日
    00
  • 比较常用的几个正则表达式匹配数字(收藏)

    下面是详细的攻略: 比较常用的几个正则表达式匹配数字(收藏) 在Python中,我们可以使用正则表达式来匹配数字。本文将介绍几个常用的正则表达式,分别是匹配整数、匹配浮点数、匹配正整数和匹配负整数。 匹配整数的正则表达式 下面是匹配整数的正则表达式: pattern = r’^[-+]?[0-9]+$’ 上面的正则表达式可以匹配整数,包括正整数、负整数和零。…

    python 2023年5月14日
    00
  • 七个Python必备的GUI库

    接下来我将为你详细介绍 “七个Python必备的GUI库”。 1. Tkinter Tkinter是Python标准库自带的图形用户界面(GUI)工具包,它提供了GUI应用所需要的几乎所有功能部件,如:按钮、文本、输入框、标签、复选框等。Tkinter易学易用,支持多平台操作系统,是Python编写GUI程序的首选库。 以下是一个简单的Tkinter GUI…

    python 2023年5月14日
    00
  • Python正则表达式的7个使用典范(推荐)

    Python正则表达式的7个使用典范 正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。在Python中,模块提供了正则表式支持,方便进行字符串的处理。本文将详细讲解Python正则表达式的7个使用典,包括正则表达语法、re模块的常用函数以及示例说明。 1. 匹配邮箱地址 import re# 定义正则表式 pattern = r…

    python 2023年5月14日
    00
  • python实现人机对战的五子棋游戏

    安装必要的库 为了实现这个五子棋游戏,我们需要用到一些Python库,如numpy、Tkinter。因此,需要确保这些库已经安装好了。可以通过以下命令在命令行中安装: pip install numpy python -m tkinter 创建游戏界面 我们使用Tkinter库来实现游戏的GUI界面。在前面的代码中,我们首先导入了Tkinter库,然后创建了…

    python 2023年5月23日
    00
  • pip报错“FileNotFoundError: [Errno 2] No such file or directory: ‘pip’”怎么处理?

    当使用 pip 安装 Python 包时,可能会遇到 “FileNotFoundError: [Errno 2] No such file or directory: ‘pip'” 错误。这个错误通常是由于 pip 没有正确安装或 pip 的路径没有添加到系统路径中导致的。以下是详细讲解 pip 报错 “FileNotFoundError: [Errno 2…

    python 2023年5月4日
    00
  • 基于Python制作一个文本翻译器

    如果要基于Python制作一个文本翻译器,我们可以使用Python的机器翻译库——Googletrans和BaiduTranslate,这两个库可以实现文本的自动翻译。 以下是制作文本翻译器的完整攻略: 步骤1:安装机器翻译库 我们需要下载和安装Python的机器翻译库——Googletrans和BaiduTranslate。其中,Googletrans可以…

    python 2023年5月18日
    00
  • Python 中数组和数字相乘时的注意事项说明

    当Python中的数组和数字相乘时,需要注意一些事项,本文将对这些问题进行详细讲解。 数组和数字相乘的含义 在Python中,数组和数字相乘的含义是将数组中的每个元素分别乘以该数字。 例如,以下代码将数组a中的每个元素都乘以2,并赋值回数组a中: a = [1, 2, 3, 4] a = [i * 2 for i in a] print(a) # 输出 [2…

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