我我,,我的第一个爬虫程序,竟然这么有趣!!
今天,想要学习爬虫,因此度娘一tong搜,爬虫是个啥?爬虫能做啥?咋用爬虫做个好玩的东西?
于是我搜了爬虫游戏,结果,我我我我。。。真的发现了好玩的东西。。、
此处手动 [[ 笑哭 ]]
好玩的就是它,狂点此处
一个爬虫游戏,你要对爬虫有那么点理解,就好比我,emmmm,就真的是只有一点理解,,,
进去了,然后开始游戏,按照步骤开始游戏,结果发现好像你朋友给你发的整人的对不对,我也感觉是,然后。。。这时爬虫游戏啊,老铁,想什么呢,你还能就一直输么
作为程序猿,当然是写程序解决了,没有什么是一段代码解决不了的,有的话就两段
而且要写的是一个爬虫程序
基本流程
1)分析页面
F12 查看网页源代码,分析发现,需要输入的数字就在 <h3> 标签里面,so,我们只需要把这个数取出来,放 url 最后,组成新的 url 然后进行访问,循环此步骤,就代替了人为操作了,至于循环到最后会发生什么,试了才知道,嘿嘿
2)发起请求:
通过url向服务器发起request请求,请求可以包含额外的header信息。
使用 第三方库 requests,发送 get 请求,并且为了模拟浏览器行为,添加一个头部字段 User-Agent
num = 93147 # 第一次让输入的数字
url = 'http://www.heibanke.com/lesson/crawler_ex00/' + str(num)
r = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'})
3)获取响应内容 :
响应内容通过返回值获取,可以打印查看获取的信息
text = r.text
print(text)
4)解析内容
先找到 <h3> 所在的行,这个网页比较简单,只有一个 <h3> 标签,获取到之后再获取出数字,更新 url ,再次发送请求,重复以上步骤
获取数字:利用正则表达式
[\u4e00-\u9fa5]+ 匹配的是至少一个汉字,紧接着是五个数字,然后一个 . ,然后0个或者多个空格,然后匹配0个或者多个汉字,最后匹配0个或者多个 .
其中 ret[0] 是 <h3> 标签所在行
ret[1] 是正则表达式中第一对括号中匹配到的内容
ret[2] 是正则表达式中第二对括号中匹配到的内容,就是我们需要的数字
ret = re.match(R'(<h3>[\u4e00-\u9fa5]+)(\d{5}).\s*[\u4e00-\u9fa5]*.*</h3>', h3)
num = ret[2]
在此期间打印一些友好的提示信息,如果这个是有尽头的,只需要最后一步做个特殊处理即可
完整代码:
import requests
import renum = 25338 # 第一次让输入的数字
count = 0try:while True:url = 'http://www.heibanke.com/lesson/crawler_ex00/' + str(num)r = requests.get(url, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36'})print(url, '第 ', count, ' 次')count += 1text = r.text # text就是得到的html页面内容pos1 = text.find("<h3>") # 分析可知,这个简单的网页只有一个<h3>标签pos2 = text.find("</h3>") # 数字就在这个标签内,因此先将标签内容获取到h3 = text[pos1:pos2+5]ret = re.match(R'(<h3>[\u4e00-\u9fa5]+)(\d{5}).\s*[\u4e00-\u9fa5]*.*</h3>', h3)num = ret[2]
except ValueError as e:print('value error: ', e);
finally:print(text)
最终正则表达式匹配错处,异常 TypeError,捕捉异常,并最后将 html 内容打印出来,观察
正则表达式匹配错处,原来是因为这。。。。哈哈哈哈哈哈,这个游戏真好玩,爬虫真好玩!
将最后一次的 url 直接输入到浏览器中我们看结果:过关成功!
我我,,我的第一个爬虫程序,竟然这么有趣!!相关推荐
- 爬虫小白第一课、从安装python到写出第一个爬虫程序、Pycharm安装详解
本文原文链接 ↑↑↑ 目录 1什么是python 2怎么安装python 3安装python编辑器 4"写"你的第一个爬虫 5小结 python爬虫现在挺火,一方面全民学pytho ...
- 第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的步骤方法)
第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的想法) 名称:定向爬取--中国大学排名定向爬取 首先,爬之前,看看你要定向爬取的网站和数据是什么类型的? 打开你要爬取网站, ...
- python爬虫__第一个爬虫程序
前言 机缘巧合,最近在学习机器学习实战, 本来要用python来做实验和开发环境 得到一个需求,要爬取大众点评中的一些商户信息, 于是开启了我的第一个爬虫的编写,里面有好多心酸,主要是第一次. 我的文 ...
- Python入门(安装)——第一个爬虫程序(爬取山东各城市天气信息)
Python爬虫原来可以这么简单,前两天有个朋友让我帮她看一下爬取天气的一段程序有什么问题,这段程序是用Python写的,只是以前听说Python爬虫很厉害,但是不知道自己怎么会没有时间开始.刚好我也 ...
- 六问Chatgpt,小白如何在短时间内写出人生中第一个爬虫程序?
学习了Chatgpt后总是在想应该如何好好吧使用它? 直到找到了一直想下手学, 又一直在圈外打圈找不准学习方法的PYTHON编程. 缘起 工作上一直有一位同事要每天编报新的销售日报给BOSS,如是,利 ...
- python 爬虫《百炼成佛》爬虫入门 (爬虫介绍)第一个爬虫程序
爬虫<百炼成佛> 爬虫是什么? 爬虫:通过编写程序来获取到互联网上的资源百度 爬虫:通过编写程序来获取到互联网上的资源百度 需求:用程序模拟浏览器.输入一个网址.从该网址中获取到资源或者内 ...
- python爬虫--第一个爬虫程序
一.爬虫基本知识 URL(Uniform Resource Locator的缩写):也被称为网页地址,通俗讲就是文件在网络中的位置,URL就是web地址,俗称"网址". HTTP是 ...
- java爬虫编写步骤_JAVA爬虫--编写第一个网络爬虫程序
JAVA爬虫–编写第一个网络爬虫程序 前言上一章节介绍了XPATH基础语法,本章节将手把手带大家编写第一个爬虫程序,同时也希望能通过这个爬虫程序,帮助大家熟悉上一章节学习的XPATH基础语法并运用到实 ...
- append从一个添加到另一_真特么激动第一个爬虫----爬取豆瓣电影top250
养成习惯,先赞后看!!! 前言 之前一直对爬虫有兴趣,但是一直没有真正静下心来去好好学习过,这一段时间跟着b站上的一个教程做了自己人生中第一个爬虫程序,还是很有成就感的. 准备工作 1. 我们爬取一个 ...
最新文章
- 第一:做学位论文期间,不要有任何度假休息的打算;第二,导师错的时候不多;第三……...
- Action中取得request,session的四种方式
- phpStudy在linux下的使用说明
- 如何获得10倍的用户增长?| 文末福利
- Linux下系统函数open,read,write,lseek函数
- SAS线缆为什么这样多
- Kubernetes基础:Pod的详细介绍
- QML工作笔记-为TestField戴上皮肤
- php代码1030报错,laravel框架MVC理解_1030
- Linux系统管理(11)——linux下jdk的安装及环境变量配置
- 【原】NIO通信模型和BIO通信模型
- 视图,触发器,事务,存储过程,函数与流程控制,索引
- 七日Python之路--第八天(一些琐碎)
- 星环科技社区版TDH新增组件Hyperbase
- pythonnumpy官网_Numpy安装
- cloudera 卸载
- 自用推荐,heic格式转换工具
- 一个体育生的编程之路
- 伯远帖 - Java Spring 4.0 集成 MyBatis 3.1 支持
- tomcat 的并发能力分析