当前位置: 首页 > news >正文

【Python高级编程】基于正则表达式的爬虫

【Python高级编程】基于正则表达式的爬虫

配套视频课程:

【AI人工智能实战】 Python高级编程(附完整版源码资料)

一、爬虫简介

1、搜索引擎:百度,谷歌,企业内部的知识库,某些项目专项数据爬取,专业的数据爬取

2、互联网:公网(不需要授权的情况就可以浏览的内容,搜索引擎的重点),深网(需要授权才能使用的内容),暗网(非正式渠道,无法使用常规手段访问)

3、爬取互联网的公开信息,但是正常情况下,也需要遵守一个规则:robots协议:https://www.baidu.com/robots.txt (君子协议)

二、基本原理

1、所有和网页,均是HTML,HTML首先是一个大的字符串,可以按照字符串处理的方式对响应进行解析处理。其次,HTML本身也是一门标记语言,与XML是同宗同源,所以可以使用DOM对其文本进行处理。

2、所有的爬虫,核心基于超链接,进而实现网站和网页的跳转。给我一个网站,爬遍全世界。

3、如果要实现一个整站爬取程序,首先需要收集到站内所有网址,并且将重复网址去除,开始爬取内容并保存在本地或数据库,进行实现后续目标。

三、正则表达式实现

1、查找页面所有超链接

import re, requests
links = re.findall('<a href="(.+?)">', resp.text)
for link in links:print(link)

2、优化超链接并下载页面

import re, requests, time
links = re.findall('<a href="(.+?)"', resp.text)
for link in links:# 先根据页面特性,将一些无用的超链接进行排除if 'articleid' in link:continueif link.startswith('#'):continue# 对超链接进行处理,拼接出完整的URL地址if link.startswith('/'):link = 'http://www.woniunote.com' + link# 将页面文件保存于本地resp = requests.get(link)resp.encoding = 'utf-8'filename = link.split('/')[-1] + time.strftime("_%Y%m%d_%H%M%S") + '.html'with open(f'./woniunote/page/{filename}', mode='w', encoding='utf-8') as file:file.write(resp.text)

3、下载首页图片

import re, requests, time
resp = requests.get('http://www.woniunote.com/')
images = re.findall('<img src="(.+?)"', resp.text)
for image in images:# 处理URL地址if image.startswith('/'):image = 'http://www.woniunote.com' + image# 下载图片resp = requests.get(image)# suffix = image.split('.')[-1]filename = time.strftime("%Y%m%d_%H%M%S_") + image.split('/')[-1]with open('./woniunote/image/' + filename, mode='wb') as file:file.write(resp.content)

周末任务:

1、爬虫开发任务:爬取woniunote第10页到第20页的所有文章的标题,随机挑几篇文章,爬取文章中的图片

2、实现WoniuSales的批次功能(文件上传)

3、预习:HTML的DOM元素定位(含XPath)

4、查漏补缺:PHP、环境配置、网络协议(http://www.woniuxy.com/course/284,重点:TCP/IP/ARP/ICMP/HTTP)

http://www.dtcms.com/a/516174.html

相关文章:

  • 网站链接改名怎做301口碑好的网站建设商家
  • 软文代写费用昆明关键词优化
  • JAVA算法练习题day47
  • 服装外包加工网网站排名优化公司
  • linux系统中进程通信之信号
  • 求数字1-10的阶乘
  • 如何使用最简单的get请求融合众多AI API,包括ChatGPT、Grok等
  • 链表的概念和单向链表的实现
  • 2013年下半年试题二:论企业应用系统的分层架构风格
  • U 盘写写保护解决方法
  • 简约手机网站源码兴宁电子商务网站建设
  • 教程网站搭建wordpress二次元风格
  • 02-Vue 插值
  • 【NebulaGraph】Nebula Importer使用
  • 不同形态组织镊在口腔临床的适配性选择
  • 深入理解进程、线程与协程
  • 用IIS自带FTP功能搭一个FTP!
  • 一种简单的Yolov8 onnx模型类别标签获取的方法
  • 用哪个网站做首页好做网站哪里最便宜
  • ROS1+Vscode
  • Ubuntu22.04 中搭建基于 Qemu 的内核(驱动)开发环境
  • JMETER+ANT接口自动化测试环境搭建实战讲解
  • 告别“大力金刚指”:晶尊微触摸芯片让电梯按键一触即灵
  • HTML教程
  • 基于Qt Quick的图像标注与标注数据管理工具
  • vscode搭建python项目隔离的虚拟环境
  • 模版网站有源代码吗wordpress栏目对应模板
  • 海阳市城建设局网站网页价格表
  • 网站建设客户分析调查表wordpress打不开页面
  • JAVA算法练习题day50