python爬虫实例详解

yizhihongxing

Python爬虫实例详解

爬虫的基本概念

爬虫是指利用计算机程序自动访问互联网,并从中获取所需信息的一种技术。常见的爬虫应用场景为搜索引擎的抓取,以及各类网站数据的采集与分析。

基本的爬虫流程为:发送请求 -> 解析内容 -> 存储数据。当然,在实际开发中涉及到的细节和问题非常多,下面将通过两个实例进行介绍。

示例一:爬取微博热搜榜

实现步骤

  1. 导入所需模块:requests、lxml、pandas;
  2. 使用requests发送请求,获取页面源代码;
  3. 使用lxml解析页面,并使用XPath获取所需内容;
  4. 使用pandas保存结果。

代码示例

import requests
from lxml import html
import pandas as pd

url = 'https://s.weibo.com/top/summary?cate=realtimehot'
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)
tree = html.fromstring(response.content)
hot_list = tree.xpath('//td[@class="td-01 ranktop"]/text()')
title_list = tree.xpath('//td[@class="td-02"]/a/text()')
for index, hot in enumerate(hot_list):
    print(index + 1, hot, title_list[index])

df_weibo = pd.DataFrame({
    '排名': hot_list,
    '话题': title_list,
})
df_weibo.to_csv('微博热搜榜.csv', index=False, encoding='utf_8_sig')

代码解读

  • 第1行:导入所需模块;
  • 第3~5行:设置请求URL、请求头;
  • 第6行:使用requests发送请求,获取响应内容;
  • 第7行:使用lxml解析页面源代码;
  • 第8~9行:使用XPath获取热搜排名和话题;
  • 第10~13行:打印结果;
  • 第15~19行:使用pandas保存参数并写入csv文件。

示例二:爬取steam上游戏的相关信息

实现步骤

  1. 导入所需模块:requests、BeautifulSoup、time;
  2. 使用requests发送请求,获取页面源代码;
  3. 使用BeautifulSoup解析页面,并获取所需内容;
  4. 保存结果,并加入适当延时。

代码示例

import requests
from bs4 import BeautifulSoup
import time

# 请求URL
url = 'https://store.steampowered.com/app/578650/'
# 请求头
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)
soup = BeautifulSoup(response.text, 'html.parser')

# 获取steam游戏名字
game_name = soup.find('div', class_='apphub_AppName').text.strip()
print("游戏名称:" + game_name)

# 获取steam游戏价格
price_discount = soup.find('div', class_='discount_final_price').text.strip()
if price_discount:
    print("优惠价:" + price_discount)
else:
    price = soup.find('div', class_='game_purchase_price').text.strip()
    if price:
        print("原价:" + price)

# 获取steam游戏评价信息
review = soup.find('span', class_='game_review_summary').text.strip()
rating = soup.find('span', class_='responsive_reviewdesc').text.strip()
print("评价信息:" + review + "," + rating)

# 加入适当延时
time.sleep(1)

代码解读

  • 第1行:导入所需模块;
  • 第4~6行:设置请求URL、请求头;
  • 第7行:使用requests发送请求,获取响应内容;
  • 第8行:使用BeautifulSoup解析页面源代码;
  • 第11~13行:使用find方法获取游戏名称,并使用strip去除空格;
  • 第15~18行:使用find方法获取游戏价格,判断游戏是否有优惠,并使用strip去除空格;
  • 第20~22行:使用find方法获取游戏评价信息,并使用strip去除空格;
  • 第23行:使用time模块加入适当延时。

总结

通过以上两个案例,我们对于Python爬虫技术有了更加深入的了解。实际开发中,我们常常遇到各种各样的问题,但只要持续学习和实践,相信你一定可以掌握好这门技术。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬虫实例详解 - Python技术站

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

相关文章

  • python排序算法之希尔排序

    Python排序算法之希尔排序 简介 希尔排序(Shell sort)是插入排序的一种高效的改进算法,也被称为“缩小增量排序”。 希尔排序相比于插入排序,主要是通过将序列分割成若干个子序列,对每个子序列进行直接插入排序,使得间隔某个“增量”的元素为有序,再将子序列合并,使得整个序列有序。 实现步骤 确定增量序列d。 按照增量序列将列表分成若干子序列。 对子序…

    python 2023年6月5日
    00
  • Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)

    Python SQLAlchemy基本操作和常用技巧 什么是SQLAlchemy SQLAlchemy是Python中最流行的ORM框架之一。ORM即“对象关系映射”,它提供了一种将数据库和Python对象联系起来的方式,这种方式使得在Python中操作数据库变得更加容易,同时也能够提供更好的抽象化和安全性。 安装SQLAlchemy 要使用SQLAlche…

    python 2023年5月13日
    00
  • 解决python 读取excel时 日期变成数字并加.0的问题

    当使用Python读取Excel文件中的日期字段时,可能会遇到日期变成数字并加“.0”的问题。这是因为Excel中的日期被存储为浮点数,而Python读取Excel时默认情况下会把它们读取为浮点数。为了解决这个问题,可以按照以下步骤进行操作: 步骤一:安装pandas库 Pandas是一种数据处理库,提供了很多处理Excel表格的方法,可以解决读取Excel…

    python 2023年6月2日
    00
  • Python如何调用JS文件中的函数

    要调用JS文件中的函数,可以使用Python内部的模块execjs,该模块可以执行内嵌的JS代码、从文件读取JS代码并执行。下面是详细的步骤: 步骤1:安装execjs模块 在命令行输入以下命令可以安装execjs模块: pip install execjs 步骤2:创建JS函数文件 在本地创建JS函数文件,并编写需要调用的JS函数,例如example.js…

    python 2023年6月3日
    00
  • python爬虫教程之bs4解析和xpath解析详解

    Python爬虫教程之bs4解析和xpath解析详解 在本教程中,我们将介绍Python爬虫中使用的两种解析HTML和XML数据的方法:bs4和xpath。我们将提供两个示例,演示如何使用这些工具。 bs4解析 bs4是一种用于解析HTML和XML数据的Python库。在Python中,我们可以使用bs4库来解析HTML和XML数据,并使用CSS选择器或XP…

    python 2023年5月15日
    00
  • python之Character string(实例讲解)

    首先我来详细讲解一下“Python之Character String(实例讲解)”的完整攻略。 什么是Character String? 在 Python 中,字符字符串就是由一系列字符组成的序列。其中,字符指的是 Unicode 字符。 在 Python 中创建字符字符串时,需要用一对单引号、双引号或三引号将字符括起来。 例如,下面是一个创建字符字符串的示…

    python 2023年5月31日
    00
  • 利用Python发送 10 万个 http 请求

    以下是Python发送10万个http请求的攻略,具体分为以下几个步骤: 1. 安装必要的库 使用Python发送http请求需要用到requests库,可通过以下命令安装: pip install requests 2. 编写发送请求的Python脚本 按照以下格式编写Python脚本: import requests # 设置要发送请求的url url …

    python 2023年5月19日
    00
  • Python和Matlab实现蝙蝠算法的示例代码

    Python和Matlab实现蝙蝠算法的示例代码 蝙蝠算法是一种基于自然界蝙蝠群体行为的优化算法,用于解决优化问题。本文将介绍如何使用Python和Matlab实现蝙蝠算法,并提供两个示例说明。 蝙蝠算法的实现步骤 蝙蝠算法的实现步骤如下: 初始化蝙蝠群体。需要定义蝙蝠的位置、速度、频率和脉冲率等参数。 计算蝙蝠的适应度。需要根据蝙蝠的位置计算适应度。 更新…

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