今天,想要学习爬虫,因此度娘一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 直接输入到浏览器中我们看结果:过关成功!

我我,,我的第一个爬虫程序,竟然这么有趣!!相关推荐

  1. 爬虫小白第一课、从安装python到写出第一个爬虫程序、Pycharm安装详解

    本文原文链接 ↑↑↑ 目录 1什么是python 2怎么安装python 3安装python编辑器 4"写"你的第一个爬虫 5小结 python爬虫现在挺火,一方面全民学pytho ...

  2. 第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的步骤方法)

    第一个爬虫程序之定向爬取中国大学排名(收获良多,不仅仅是写个程序,更是编程的想法) 名称:定向爬取--中国大学排名定向爬取 首先,爬之前,看看你要定向爬取的网站和数据是什么类型的? 打开你要爬取网站, ...

  3. python爬虫__第一个爬虫程序

    前言 机缘巧合,最近在学习机器学习实战, 本来要用python来做实验和开发环境 得到一个需求,要爬取大众点评中的一些商户信息, 于是开启了我的第一个爬虫的编写,里面有好多心酸,主要是第一次. 我的文 ...

  4. Python入门(安装)——第一个爬虫程序(爬取山东各城市天气信息)

    Python爬虫原来可以这么简单,前两天有个朋友让我帮她看一下爬取天气的一段程序有什么问题,这段程序是用Python写的,只是以前听说Python爬虫很厉害,但是不知道自己怎么会没有时间开始.刚好我也 ...

  5. 六问Chatgpt,小白如何在短时间内写出人生中第一个爬虫程序?

    学习了Chatgpt后总是在想应该如何好好吧使用它? 直到找到了一直想下手学, 又一直在圈外打圈找不准学习方法的PYTHON编程. 缘起 工作上一直有一位同事要每天编报新的销售日报给BOSS,如是,利 ...

  6. python 爬虫《百炼成佛》爬虫入门 (爬虫介绍)第一个爬虫程序

    爬虫<百炼成佛> 爬虫是什么? 爬虫:通过编写程序来获取到互联网上的资源百度 爬虫:通过编写程序来获取到互联网上的资源百度 需求:用程序模拟浏览器.输入一个网址.从该网址中获取到资源或者内 ...

  7. python爬虫--第一个爬虫程序

    一.爬虫基本知识 URL(Uniform Resource Locator的缩写):也被称为网页地址,通俗讲就是文件在网络中的位置,URL就是web地址,俗称"网址". HTTP是 ...

  8. java爬虫编写步骤_JAVA爬虫--编写第一个网络爬虫程序

    JAVA爬虫–编写第一个网络爬虫程序 前言上一章节介绍了XPATH基础语法,本章节将手把手带大家编写第一个爬虫程序,同时也希望能通过这个爬虫程序,帮助大家熟悉上一章节学习的XPATH基础语法并运用到实 ...

  9. append从一个添加到另一_真特么激动第一个爬虫----爬取豆瓣电影top250

    养成习惯,先赞后看!!! 前言 之前一直对爬虫有兴趣,但是一直没有真正静下心来去好好学习过,这一段时间跟着b站上的一个教程做了自己人生中第一个爬虫程序,还是很有成就感的. 准备工作 1. 我们爬取一个 ...

最新文章

  1. 第一:做学位论文期间,不要有任何度假休息的打算;第二,导师错的时候不多;第三……...
  2. Action中取得request,session的四种方式
  3. phpStudy在linux下的使用说明
  4. 如何获得10倍的用户增长?| 文末福利
  5. Linux下系统函数open,read,write,lseek函数
  6. SAS线缆为什么这样多
  7. Kubernetes基础:Pod的详细介绍
  8. QML工作笔记-为TestField戴上皮肤
  9. php代码1030报错,laravel框架MVC理解_1030
  10. Linux系统管理(11)——linux下jdk的安装及环境变量配置
  11. 【原】NIO通信模型和BIO通信模型
  12. 视图,触发器,事务,存储过程,函数与流程控制,索引
  13. 七日Python之路--第八天(一些琐碎)
  14. 星环科技社区版TDH新增组件Hyperbase
  15. pythonnumpy官网_Numpy安装
  16. cloudera 卸载
  17. 自用推荐,heic格式转换工具
  18. 一个体育生的编程之路
  19. 伯远帖 - Java Spring 4.0 集成 MyBatis 3.1 支持
  20. tomcat 的并发能力分析

热门文章

  1. 图形化开放式生信分析系统开发- 1基本需求分析及技术实现
  2. 微信视频号如何直播游戏效果最好?教你最简单的方法
  3. 用c++图形库编写的双人打气球
  4. java 类转换_java实体类转换有没有更优雅的方式?
  5. 第十二节 SprnigBoot使用定时任务
  6. 共振峰检测matlab,基于 LPC 系数的共振峰估计
  7. Matlab中使用LaTex字体
  8. 刺激,35岁程序员炒币,千万资产3天归零
  9. 在线教育行业未来的发展趋势
  10. 根据指定的n,返回相应的斐波纳契数列。