掘金主页:
追_风筝的人 的个人主页 - 动态 - 掘金 (juejin.cn)
右键检查,发现数据都在,起码没有加密什么的,然后打开控制台-网络-刷新,第一个就是主体,发现所有数据都在里面,所以找到对应的URL,准备写爬虫,但是返回来的数据竟然没有数字,我很纳闷,再仔细一看,嗷,原来是JavaScript脚本没有被网页执行,准备爬取js文件的,但是我一看,你这都摆在HTML上了,我还爬什么js文件啊,直接cirl+A,复制文本到TXT文档里,然后开始写算法,最后成功得出结果:341185
import sys
import time
import os
import json
import re # 正则表达式,进行文字匹配
def is_number(s):
try: # 如果能运行float(s)语句,返回True(字符串s是浮点数)
float(s)
return True
except ValueError: # ValueError为Python的一种标准异常,表示"传入无效的参数"
pass # 如果引发了ValueError这种异常,不做任何事情(pass:不做任何事情,一般用做占位语句)
try:
import unicodedata # 处理ASCii码的包
unicodedata.numeric(s) # 把一个表示数字的字符串转换为浮点数返回的函数
return True
except (TypeError, ValueError):
pass
return False
uus = ''
with open(r'C:\Users\ycl\PycharmProjects\untitled8\靶场测试.txt','r',encoding='utf-8') as f:
str = f.readlines()
jj = 0
print(type(str))
for i in str:
num = re.findall(' (.*?)\n', i)
if num is not None:
for ii in num:
if (is_number(ii)==True):
jj += float(ii)
print(jj)
# for i in str:
# uus += i
# uus.split('\n')
# print(uus)
#
# t = re.findall(r'<div class="col-md-1">(.*?)</div>', uus)
# print(t)
''' <div class="col-md-1">\n', ' 166\n'''
# response.encoding = 'utf-8'
# html = response.text
# # print(html)
# js = json.loads(html)
# print(js)
作者:追_风筝的人
链接:https://juejin.cn/post/7140632993676132388
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
当我拿到结果,准备写答案时,网站显示不安全,不让我访问,无视风险继续访问, 得到:
我真的无语了.....
总结:
虽然靶场是坏的,但是也从其中学到了不少知识,遇见不能爬取的页面,如果有源码在,我们也可以复制到TXT中,之后的步骤就是response.text()一模一样了,还是re.findall()到所需要的信息,也可以复制到本地HTML中,然后抓取xpath,或者利用css选择器来获取信息