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编程中非常常见的操作。在处理大规模数据时,常常需要将数据存储在文件中,然后使用Python程序读取并进行相应的处理。以下是实现文件读取与输入以及数据存储与读取的常用命令及攻略。 读取文件 Python提供了多种方法读取文本文件,其中最常用的是open()函数。使用open()函数打开文件时需要两个参数,即文件名和打开文件的模式。 …

    python 2023年6月2日
    00
  • python实现购物车小程序

    为了让大家更好地学习“Python实现购物车小程序”的完整攻略,我将按照以下步骤进行详细讲解: 确定需求 设计数据结构 编写程序代码 测试程序 优化程序 下面我将分别进行讲解。 确定需求 在实现购物车小程序之前,我们首先需要明确程序的需求。购物车小程序主要有两个功能: 添加商品到购物车; 查看购物车中的商品并统计总价。 设计数据结构 在确定需求之后,我们需要…

    python 2023年5月23日
    00
  • 浅述python2与python3的简单区别

    讲解“浅述Python2与Python3的简单区别”这个问题,我主要从以下三个方面来讲解: 语法的不同 库的不同 其他差异 1. 语法的不同 Python 3相对于Python 2在语法上做了一些改进: print语句:Python 2中使用”print”语句来输出内容,而在Python 3中,这个语句被改成了一个函数,需要用括号将内容包裹起来。例如:pri…

    python 2023年5月20日
    00
  • Python小程序 控制鼠标循环点击代码实例

    下面就来讲一下“Python小程序 控制鼠标循环点击代码实例”的完整攻略。 一、实现思路 首先,我们需要借助第三方库pyautogui来完成控制鼠标的操作。然后,通过使用循环语句和延时函数time.sleep()来实现循环点击。 完整的实现思路如下: 引入第三方库pyautogui 使用pyautogui.moveTo()将鼠标移动到需要点击的位置 使用py…

    python 2023年5月18日
    00
  • 零基础学Python(一)Python环境安装

    下面是“零基础学Python(一)Python环境安装”的完整攻略: 确认系统环境 在安装Python之前,需要确认系统环境。Python可以在 Windows、Mac OS X、Linux等操作系统中运行。 下面是一些适用于不同操作系统的Python版本: Windows:Python 2.7.x or Python 3.5.x Mac OS X:Pyth…

    python 2023年5月30日
    00
  • 通过python获取注册域名

    【问题标题】:Get registered domains by python通过python获取注册域名 【发布时间】:2023-04-02 14:35:02 【问题描述】: 我想在 whois 域上做一个 python 程序。 我想获取每天在whois域中注册的信息。 寻找有一个whois library。 但是好像不能搜索每天获得的域名。 有没有办法在…

    Python开发 2023年4月8日
    00
  • python掌握字符串只需这一篇就够了

    当学习Python编程语言时,掌握字符串操作是非常重要的部分。字符串在Python语言中非常常见,可以用于创建数据源、文件处理和网络传输等许多方面。 本篇文章将详细讲解如何在Python中操作字符串,包括字符串的常见方法、格式化字符串、正则表达式和字符串处理技巧。 字符串的基础 在Python中,字符串通常由一连串字符组成。可以使用单引号或双引号来定义一个字…

    python 2023年6月3日
    00
  • Python实现某论坛自动签到功能

    让我来为您详细讲解如何使用Python实现某论坛自动签到功能。 1. 确认签到接口 在实现自动签到功能之前,需要先确认该论坛是否有签到接口,并确定签到接口的参数。 可以通过打开浏览器的开发者模式,查看网络请求中的签到接口来获取参数。或者也可以在论坛里点击签到按钮,通过监测请求参数来获取签到接口的参数。 例如,签到接口的网址为http://bbs.myforu…

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