python3爬虫之入门基础和正则表达式

Python3 爬虫之入门基础和正则表达式

什么是爬虫?

爬虫,也称网络爬虫,是指一种自动获取网页内容的程序。爬虫通常会通过模拟人工浏览网页的行为,去抓取网页中的数据。

为什么要学习爬虫?

学习爬虫可以帮助我们:

  1. 更好地了解数据,掌握数据分析的技能;
  2. 在互联网中获取到自己需要的信息,并进行分析,以用于各种应用场景;
  3. 搜集市场上的报价、行情、新闻等信息,帮助决策。

Python3 爬虫基础

Python3 可以使用 urllib、requests、beautifulsoup 等模块进行爬虫。

Urllib

Urllib 是 Python 内置的 HTTP 请求库,包含了对 HTTP 的一些基本操作,如发送 GET、POST 等请求,以及管理 Cookie、请求头信息等。

以下是一个简单的示例,使用 urllib 请求一个网页:

import urllib.request

response = urllib.request.urlopen('http://www.baidu.com')
print(response.read().decode('utf-8'))

这个示例中,我们使用 urllib.request.urlopen 函数打开一个网页,并将其返回结果保存到变量 response 中,然后使用 response.read() 函数读取网页的内容,并使用 decode() 函数进行编码转换。

Requests

Requests 是一个简单易用的 HTTP 请求库,在 Python 爬虫中被广泛使用。

以下是一个简单的示例,使用 requests 请求一个网页:

import requests

response = requests.get('http://www.baidu.com')
print(response.text)

这个示例中,我们使用 requests.get 函数请求一个网页,并将其结果保存到变量 response 中,然后使用 response.text 属性获取网页的内容。

BeautifulSoup

BeautifulSoup 是 Python 爬虫中用于解析 HTML 和 XML 文档的 Python 库,它可以从网页中提取需要的数据。与使用正则表达式从网页中提取数据相比,使用 BeautifulSoup 更加灵活简洁。

以下是一个简单示例,使用 BeautifulSoup 解析一个网页:

import requests
from bs4 import BeautifulSoup

response = requests.get('http://www.baidu.com')
soup = BeautifulSoup(response.text, 'html.parser')
print(soup.title.string)

这个示例中,我们先使用 requests.get 函数请求一个网页,然后使用 BeautifulSoup 解析这个页面,并从中获取网页的标题。

正则表达式基础

正则表达式是一种匹配字符串的描述性语言,它可以用来描述字符串的规则,以及根据规则进行查找和筛选。

基本语法

正则表达式的基本语法包括以下几个元字符:

  • .:匹配任意一个字符;
  • []:匹配括号内任意一个字符;
  • *:匹配前一个字符任意次;
  • +:匹配前一个字符至少一次;
  • ?:匹配前一个字符零次或一次;
  • |:匹配左右两边的任意一项;
  • ():匹配括号内的表达式。

以下是一个简单的示例,使用正则表达式匹配某个字符串:

import re

text = 'Hello, World!'
pattern = 'l.{2}o'
match = re.search(pattern, text)
print(match.group())

这个示例中,我们使用 re.search 函数在一个字符串中查找一个正则表达式,并输出匹配到的结果。

常用正则表达式

正则表达式中,有一些常用的模式可以帮助我们更快地匹配字符串。例如:

  • \d:匹配任意一个数字;
  • \D:匹配任意一个非数字字符;
  • \w:匹配任意一个字母、数字或下划线;
  • \W:匹配任意一个非字母、数字或下划线。

以下是一个示例,使用正则表达式匹配中国大陆手机号:

import re

text = '我的手机号码是:13912345678,你呢?'
pattern = '1[3456789]\d{9}'
match = re.search(pattern, text)
print(match.group())

这个示例中,我们使用正则表达式匹配一个中国大陆手机号,并输出匹配到的结果。

示例一:爬取豆瓣电影 TOP250

以下是一个示例,演示如何使用 Python 爬虫爬取豆瓣电影 TOP250 并提取其中的电影名称、评分和评价人数:

import requests
from bs4 import BeautifulSoup
import csv

csv_file = open('movies.csv', 'w', newline='', encoding='utf-8')
writer = csv.writer(csv_file)
writer.writerow(['电影名称', '评分', '评价人数'])

url = 'https://movie.douban.com/top250'
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'}
for i in range(10):
    response = requests.get(url, headers=headers, params={'start': i * 25})
    soup = BeautifulSoup(response.text, 'html.parser')
    movies = soup.select('.grid_view .item')
    for movie in movies:
        name = movie.select_one('.title').get_text().strip()
        rating = movie.select_one('.rating_num').get_text().strip()
        number = movie.select('.star span')[-1].get_text().strip().strip('人评价')
        print(name, rating, number)
        writer.writerow([name, rating, number])

csv_file.close()

这个示例中,我们首先打开一个 CSV 文件,并写入标题行。然后循环获取豆瓣电影 TOP250 的网页,使用 BeautifulSoup 解析网页,并提取出每个电影的名称、评分和评价人数。最后将这些信息写入 CSV 文件中。

示例二:爬取糗事百科热门段子

以下是一个示例,演示如何使用 Python 爬虫爬取糗事百科热门段子并提取其中的作者、点赞数和评论数:

import requests
from bs4 import BeautifulSoup
import csv

csv_file = open('jokes.csv', 'w', newline='', encoding='utf-8')
writer = csv.writer(csv_file)
writer.writerow(['作者', '点赞数', '评论数'])

url = 'https://www.qiushibaike.com/hot/page/'
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'}
for i in range(1, 11):
    response = requests.get(url + str(i), headers=headers)
    soup = BeautifulSoup(response.text, 'html.parser')
    articles = soup.select('.content-block')
    for article in articles:
        author = article.select_one('.recmd-name').get_text().strip()
        vote = article.select_one('.stats-vote .number').get_text().strip()
        comment = article.select_one('.stats-comments .number').get_text().strip()
        print(author, vote, comment)
        writer.writerow([author, vote, comment])

csv_file.close()

这个示例中,我们首先打开一个 CSV 文件,并写入标题行。然后循环获取糗事百科热门段子的网页,使用 BeautifulSoup 解析网页,并提取出每个段子的作者、点赞数和评论数。最后将这些信息写入 CSV 文件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3爬虫之入门基础和正则表达式 - Python技术站

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

相关文章

  • python 双循环遍历list 变量判断代码

    以下是“Python双循环遍历list变量判断代码”的完整攻略。 1. 双循环遍历list变量 在Python中,可以使用双循环遍历list变量,以实现对list中元素的判断。示例如下: my_list = [1, 2, 3, 4, 5, 6] for i in my_list: for j in my_list: if i + j == 7: print(…

    python 2023年5月13日
    00
  • Python FFT合成波形的实例

    我来详细讲解Python FFT合成波形的实例的完整攻略。 1. 背景介绍 FFT合成波形是指用已知的频谱数据(比如傅里叶变换之后的幅度和相位),来合成一个波形。这种技术的应用非常广泛,比如音频信号处理、图像处理等领域。在Python中,我们可以使用numpy库来进行FFT变换和波形合成。 2. 步骤说明 2.1 导入依赖库 首先,我们需要导入所需要的依赖库…

    python 2023年6月6日
    00
  • python绘制神器五角星+小黄人+樱花

    首先,我们需要准备好在Python中进行绘图的工具包——matplotlib。安装命令为: pip3 install matplotlib 接下来,我们可以尝试用matplotlib来绘制一个五角星。代码如下: import matplotlib.pyplot as plt import numpy as np # 设置画布大小 fig = plt.figu…

    python 2023年5月18日
    00
  • Python获取网页数据详解流程

    当然,我很乐意为您提供“Python获取网页数据详解流程”的完整攻略。以下是详细的步骤和示例: Python网页数据的流程 Python获取网数据的流程通常包括以下几个步: 导入所需的库 发送请求 获取响应内容 4.析响应内容 提取所需数据 1. 导入所需的库 在Python中,我们通常使用requests库发送HTTP请求,使用BeautifulSoup库…

    python 2023年5月13日
    00
  • ipython和python区别详解

    IPython和Python区别详解 1. IPython是什么? IPython是一个增强版的Python解释器,可以为用户提供更优秀的交互式编程环境,并且提供了许多高级功能。 IPython可以在终端使用,也可以在Jupyter Notebook中使用。它包含了一些很好的特性,例如: 自动补全 命令历史记录 帮助和文档信息 魔术命令 单元测试 2. IP…

    python 2023年5月30日
    00
  • 如何在python中写hive脚本

    当在 Python 中进行大数据处理时,经常需要和Hive交互,执行查询和操作。以下是在 Python 中写 Hive 脚本的步骤和示例: 1. 安装PyHive库 PyHive是Apache Hive的Python库,提供了Python连接到Hive的驱动, 安装PyHive之前需要先安装好Thrift 运行以下命令在终端中安装PyHive: pip in…

    python 2023年6月3日
    00
  • Python读写压缩文件的方法

    Python读取压缩文件的方法 要读取压缩文件,需要使用Python内置的zipfile模块。首先,需要导入该模块。 import zipfile 读取压缩文件的基本过程如下: 使用zipfile.ZipFile()函数打开压缩文件,得到一个zipfile.ZipFile对象; 使用ZipFile.namelist()方法获取压缩文件中的文件列表; 使用Zi…

    python 2023年6月5日
    00
  • python读取Excel实例详解

    Python读取Excel实例详解 简介 Excel是广泛使用的电子表格软件,它的表格内容以.xlsx结尾的文件格式保存。Python是一门强大的编程语言,可以用于数据处理、数据可视化、机器学习等领域。在Python中,我们可以使用多种方式读取Excel文件,本文将提供一些实例进行讲解。 安装第三方库 在使用Python进行Excel读取之前,我们需要安装一…

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