一、需求

通过网站源码获取想要的数据。

二、操作步骤

使用pycharm软件。

1.引入相关库

import urllib.request, urllib.error
from bs4 import BeautifulSoup
import re
import xlwt

2.全局变量

2.1要获取的网址url。

# 定义url
baseurl = "https://www.58pic.com/newicon/76829.html?svg_type=1&kw=0&pinyin=0"

2.2链接正则。

# 定义正则对象获取指定的内容
# 提取图片
findImgSrc = re.compile(r'<img alt="" src="([A-Za-z0-9:/._?=&;-]*?=)"', re.S)

3.函数

3.1网页源码获取函数

# 定义函数得到指定url网页的内容
def geturl(url):# 自定义headers(描述访问服务器的机器类型)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36'}# Request类构造请求req = urllib.request.Request(url, headers=headers)# 定义一个接收变量,用于接收html = ""try:# urlopen()方法的参数,发送给服务器并接收响应resp = urllib.request.urlopen(req)# urlopen()获取页面内容,返回的数据格式为bytes类型,需要decode()解码,转换成str类型html = resp.read().decode("utf-8", "ignore")except urllib.error.URLError as e:if hasattr(e, "code"):print(e.code)if hasattr(e, "reason"):print(e.reason)return html

分为以下几部分:

  • 包装访问头
  • 发送请求至网站
  • 获取内容
  • 转码
  • 输出

3.2数据处理函数

# 定义函数获取源数据
def getsrcdata(baseurl):# 获取网页源码html = geturl(baseurl)# 指定解析器解析html,注意此处使用html5lib解析会导致仅解析h5的内容从而使后面正则匹配失败soup = BeautifulSoup(html, "html.parser")# 定位数据块 img标签,匹配alt描述为空内容的数据item = soup.find_all('img', {'alt': ''})# 定义一个列表 来存储初筛出来的内容data = []# 循环进行第二次数据正则处理for item in item:# item转为字符串操作itemt = str(item)# 干掉转义字符组&amp;itemt = itemt.replace("&amp;", "&")# 打印初筛内容print(itemt)# 进行第二次数据处理,防止读取越界使用trytry:# 正则匹配扒出链接img = re.findall(findImgSrc, itemt)[0]# 添加入表data.append(img)  # 添加图片链接except IndexError:passreturn data

分为以下几部分:

  • 解释器对网页源码解析
  • 针对标签进行初筛
  • 使用正则表达式进行细筛
  • 存入表后输出

3.3数据保存函数(main函数)

def main():# 1 获取数据源data = getsrcdata(baseurl)# 2 存储数据# 存储文件名称savepath = "svglib.xls"# 创建Workbook对象book = xlwt.Workbook(encoding="utf-8", style_compression=0)# 创建工作表sheet = book.add_sheet("ref", cell_overwrite_ok=True)# 列名col = ("链接")# 工作簿列明写入 坐标0,0sheet.write(0, 0, col)# 循环打印数据源 复查for ite in data:print(ite)# 循环写入数据源for i in range(0, len(data)):print('正在保存第' + str((i + 1)) + '条')# 从表中取一条datat = data[i]# 写入工作簿 坐标i+1,0sheet.write(i + 1, 0, datat)# 保存book.save(savepath)

分为以下几部分:

  • 获取数据源
  • 使用xlwt创建工作簿
  • 按坐标逐数据写入
  • 保存

3.4main引导

if __name__ == "__main__":main()

四、总结

静态网页爬取不难,主要牢记以上几个步骤,以及善用引入的库。

对于正则,可以自己经常编写python样例练习与测试结果。

【python】分析静态网页内容与获取相关推荐

  1. python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标、时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析

    python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标.时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析 目录

  2. python获取历史双色球数据_你的梦想,我来买单!Python分析双色球中奖号码竟成功获取特等奖

    关于双色球的话题估计大家都听的很多,毕竟成本很低,但是收获很高.毕竟当利润达到100%时,就有人敢于铤而走险.当利润达到200%时,他们就敢于冒上断头台的危险. 而当利润达到300%他们就会践踏人间的 ...

  3. python获取所有a股股票代码_股票量化分析(一)获取A股列表

    2015年的股市是当下的热门话题,同事的朋友弄了一个简单的弹股吐槽单页面单日PV就能达30W+ ,相当于本博客一年的PV量.所以站在技术角度,这里也写几篇关于股票技术面的文章.首先本篇先从获取A股列表 ...

  4. 基于python爬虫————静态页面和动态页面爬取

    基于python爬虫----静态页面和动态页面爬取 文章目录 基于python爬虫----静态页面和动态页面爬取 1. 爬虫的原理 2. 用正则表达式匹配获取数据 3. 页面源码解析 4. 通过req ...

  5. python分类信息_用Python分析了 7 万款 App后,我们发现...

    原标题:用Python分析了 7 万款 App后,我们发现... 本文中使用 Scrapy 爬取了豌豆荚全网 70,000+ App ,并进行探索性分析. 写在前面:若对数据抓取部分不感兴趣,可以直接 ...

  6. 震惊!谁上春晚最多?我用 Python 分析过往 39 届央视春晚的数据

    一年又一年,看过那么多春晚,哪一年.哪些节目.哪些人你还留有深刻印象呢.如今,距离第一届春晚 1983 年,整整过去了 39 年.谁导演春晚次数最多,谁主持春晚次数最多,谁上春晚次数最多?今天小编用 ...

  7. Python分析离散心率信号(中)

    Python分析离散心率信号(中) 一些理论和背景 心率信号不仅包含有关心脏的信息,还包含有关呼吸,短期血压调节,体温调节和荷尔蒙血压调节(长期)的信息.也(尽管不总是始终如一)与精神努力相关联,这并 ...

  8. Python分析101位《创造营2020》小姐姐,谁才是你心中的颜值担当?

    来源 | CDA 数据分析师 责编 |  Carol Show me data,用数据说话. 今天我们聊一聊<创造营2020>各个小姐姐,点击下方视频,先睹为快: 最近可以追的综艺真是太多 ...

  9. 用Python分析了十年电影票房,原来我错过了这么多好电影!

    "玩电影票房数据,我教你啊" 3月8日妇女节,我很期待的超级英雄电影<惊奇队长>上映了,票房表现很快过亿,但大众口碑却让人失望. 一个有趣且常见的现象是,隔壁获奖无数, ...

最新文章

  1. 麻省理工研究:深度图像分类器,居然还会过度解读
  2. 关于网络唤醒远程开机的方法
  3. VS快捷键大全(总结了一些记忆的口诀)
  4. 无法添加类型为“mimeMap”的重复集合项
  5. mysql编程的作用_数据库系统概论对学习编程的作用?
  6. 面试最后HR都要问一句有没有什么问题要问我?
  7. 外媒评出中国最美20个景点
  8. hmm 求隐藏序列_结巴分词3--基于汉字成词能力的HMM模型识别未登录词
  9. java反射异常之java.lang.NoSuchFieldException: school
  10. P3642 [APIO2016]烟火表演(左偏树、函数)
  11. 五、pink老师的学习笔记——CSS精灵技术(sprite)
  12. Webservice接口调用工具类
  13. 【Python】数据处理之One-Hot编码
  14. Scala折叠(fold)
  15. Android开发:如何实现收发短信
  16. win10网页找不到服务器dns,Win10系统下网页打不开提示无法解析服务器DNS如何解决...
  17. MongoDb的ConnectionString链接字符串解析
  18. php雅思老师,雅思口语话题:最喜欢的老师
  19. MMX指令集系列之二----移位运算和乘法指令
  20. 深入浅出IOC和DI---学习记录

热门文章

  1. 提升技术认知,参加2021上海QCon技术大会
  2. 前端基础(三十二):图片转base64
  3. 行测-常识积累(4)
  4. 昆明php工作前景,学习php语言有前途吗 昆明计算机学校
  5. R语言使用lm函数构建多元回归模型(Multiple Linear Regression)、使用step函数筛选最合适的回归变量(逐步回归筛选预测变量的最佳子集)
  6. 各平台DNS刷新方法-Windows/Mac/Linux
  7. WebRTC Native M96 SDK接口封装--muteLocalAudioStream开关本地音频发送
  8. PDF设置密码保护的两种方法
  9. 2022-2028全球与中国X射线平板探测器市场现状及未来发展趋势
  10. 太极快速开发平台:帮助中心目录