因为嘉伟思杯里的一个脚本题目,16进制计算,python3正则还没学,所以没写出来。大佬跟我说也可以用BS4,从DOM上下手,直接爬下来直接一个eval就搞定了,eval可以像这样计算16进制,eval('0x2b+0x37')。BUGKU已经写了很多了,还几题没写,慢慢的续上。写过的就不发WP了,百度都有,就是像记录自己的学习历程。从原来的不懂,到现在的会。

呢么进入正题:),进入题目链接后,

import re
import requests
url='http://123.206.87.240:8002/qiumingshan/'
r=requests.session()
numbers=r.get(url)
last=re.search(r'(\d+[/+*-])+(\d+)',numbers.text).group() 或者用re.findall也可以实现想BS一样的功能#
last=re.findall(r'<div>(\d.*)</div>',numbers.text)[0]

                                               #data=eval(last.strip('=?;'))


data=eval(last)
post={'value':data}
accept=r.post(url,data=post)
print(accept.text)

至于为什么知道参数是VALUE,我也很疑惑写完脚本后,不知道POST参数是什么,随便找了下WP看了下,刷新多次后,就会出现。。。。(我醉了)

来了,老弟,女朋友GANK完,就开始撸代码了。其实就是用BS4在DOM上操作,爬取页面上需要的东西,然后转化成String,再eval下,因为菜的真实,各种百度转化格式。

import requests
from bs4 import BeautifulSoup
url='http://123.206.87.240:8002/qiumingshan/'
r=requests.session()
title=r.get(url)
html=title.text
beau=BeautifulSoup(html,'html.parser')
texts=beau.find_all('div')
a=texts[0].string
print(type(a),type(str(a)))
c=str(a).strip('=?;')
data=eval(c)
post={'value':data}
abc=r.post(url,data=post)
print(abc.text)

把bs4.element.Tag通过string方法转化为bs4.element.NavigableString,然后可以通过str()或者join方法来转化为string格式,再一个eval搞定。具体NavigableString是什么,留给大家百度了(其实自己也就是一知半解QAQ)

然后代码的最后,a,b,c这种命名格式不推荐,虽然写起来方便,但不容易记忆,如果是很大一串的代码,呢么你就GG了。所以养成一个代码命名的好习惯是很总要的噢(我只是偷懒了一下下)

BS4学习可以通过文档查阅

秋名山老司机(BS4与正则的比拼)的更多相关文章

  1. bugku秋名山老司机+写博客的第一天

    bugku之秋名山老司机 题目连接:http://123.206.87.240:8002/qiumingshan/ 一点进去是这样的 请在两秒内计算这个式子...怎么可能算的出来 查看源码,无果.. ...

  2. javbus爬虫-老司机你值得拥有

    # 起因 有个朋友叫我帮忙写个爬虫,爬取javbus5上面所有的详情页链接,也就是所有的https://www.javbus5.com/SRS-055这种链接, 我一看,嘿呀,这是司机的活儿啊,我绝对 ...

  3. C语言老司机学Python (五)

    今天看的是标准库概览. 操作系统接口: 用os模块实现. 针对文件和目录管理,还有个shutil模块可以用. 例句: import os os.getcwd() # 返回当前的工作目录 os.chdi ...

  4. [BZOJ4200][Noi2015]小园丁与老司机

    4200: [Noi2015]小园丁与老司机 Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 106  Solved ...

  5. 老司机学新平台 - Xamarin开发之我的第一个MvvmCross跨平台插件:SimpleAudioPlayer

    大家好,老司机学Xamarin系列又来啦!上一篇MvvmCross插件精选文末提到,Xamarin平台下,一直没找到一个可用的跨平台AudioPlayer插件.那就自力更生,让我们就自己来写一个吧! ...

  6. 老司机学新平台 - Xamarin Forms开发框架之MvvmCross插件精选

    在前两篇老司机学Xamarin系列中,简单介绍了Xamarin开发环境的搭建以及Prism和MvvmCross这两个开发框架.不同的框架,往往不仅仅使用不同的架构风格,同时社区活跃度不同,各种功能模块 ...

  7. 老司机学新平台 - Xamarin开发环境及开发框架初探

    随着被微软收购,最近一年间,Xamarin的火爆程度与日俱增.免费.更好的VS2015集成.更好的模拟器,甚至,在windows上运行和调试iOS平台程序,让我这样接触了十几年.NET平台的老司机,即 ...

  8. FJNU 1196 汪老司机(DP or 建图+最短路)

    1196: 汪老司机 Time Limit: 1000 MS         Memory Limit: 257792 KB 64-bit interger IO format: %lld       ...

  9. 老司机带你走进Core Animation

    为什么时隔这么久我又回来了呢? 回来圈粉. 开玩笑的,前段时间ipv6被拒啊,超级悲剧的,前后弄了好久,然后需求啊什么的又超多,所以写好的东西也没有时间整理.不过既然我现在回来了,那么这将是一个井喷的 ...

随机推荐

  1. tps 和 qps的区别

    QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准. TPS:是Transactions ...

  2. Photoshop实例视频教程

    Photoshop实例视频教程 2019/04/23 文件名 大小 复古街机风建筑效果图PS教程.mp4 6.63 MB 48.PS教程从零开始学——切片选择工具.mp4 20.90 MB PS教程- ...

  3. Python发送邮件脚本

    import smtplib from email.mime.text import MIMEText mailserver = "smtp.163.com" username_s ...

  4. windows 监控

    监控time_wait状态tcp/ip连接 > netstat -an | findstr "TIME_WAIT" 如果监控此值发现量比较大,且有类似socketExcept ...

  5. dataTables 插件学习整理

    在项目中使用了dataTables 插件,学习整理一下. dataTables 的官方中文网站 http://www.datatables.club 引入文件: 所有的都要引入 jq文件 1. dat ...

  6. 2019-04-19 EasyWeb数据源问题

    问题描述:今天增加了个新模块,为了让各个模块自己保留自己的数据源配置,所以把数据源配置类放入自己模块包中,但是进行请求发现数据源会先选择默认的数据源,导致报错说主数据源下不存在表:当我把配置文件放回统 ...

  7. jQuery的事件处理

    一.页面加载响应事件 $(document).ready()方法,获取文档就绪的时候.他极大地提高了Web相应速度.虽然该方法可以代替传统的window.onload()方法,但是两者之间仍然有差别. ...

  8. [ffmpeg] 多输入滤波同步方式(framesync)

    滤波也不总是单一的输入,也存在对多个输入流进行滤波的需求,最常见的就是对视频添加可视水印,水印的组成通常为原视频以及作为水印的图片或者小动画,在ffmpeg中可以使用overlay滤波器进行水印添加. ...

  9. package---包

    一,包 包(package) 用于管理程序中的类,主要用于解决类的同名问题.包可以看成目录. 包的作用: [1] 防止命名冲突. [2] 允许类组成一个单元(模块),便于管理和维护 [3] 更好的保护 ...

  10. 一加3T 误清除data 恢复数据

    数据丢失经过:日常用机无备份直接操作:装google框架后,rootexplorer文件浏览器删除多余google应用导致无法开机:开机不成功应该重刷入google gapps包,并没有这样操作而是进 ...