本帖最后由 愤怒的小车 于 2019-5-8 09:41 编辑

一:本代码是我研究了好久才写出来,七功能主要有自动登陆、自动识别验证码、以及自动识别下载格式进行判断下载!

首先,搬上我们的主角网址,http://lavteam.org/,进去一看,是一个俄罗斯人创建的网站,七内容让我们不亦乐乎。

二:登陆

要进行分析,首先要注册一个账号,账号各位自己注册。

抓包发现,他的登陆请求地址为http://www.lavteam.org/,其中表单:

QQ图片20190508090034.png (14.08 KB, 下载次数: 1)

2019-5-8 09:01 上传

我们构造表单,进行请求,其函数为:

def login():

print('正在登陆......')

req = session.get(first_url)

data = {

'login_name': '账号',

'login_password':'密码',

'login': 'submit',

'image.x': '43',

'image.y': '11',

}

req = session.post(first_url,data = data)

三:查询

登陆进去就需要查找自己想要的内容,比如我们输入ventsim,然后进行抓包,抓包得到:

Request URL:http://lavteam.org/

Request Method:POST

其表单为:

QQ图片20190508090733.png (11.58 KB, 下载次数: 1)

2019-5-8 09:08 上传

接着我们再构造其请求,请求返回的内容列表我把他整理成字典的格式,方便在于我只要输入软件编号,就可以对该内容进行深入操作,我对多页内容都进行了遍历,所有的内容链接都整理了出来,代码如下:

def reach(ventsim):

data = {

'do': 'search',

'subaction': 'search',

'story': ventsim,

'x': '42',

'y':'9' ,

}

req = session.post(first_url,data = data).text

html = etree.HTML(req)

url = html.xpath('//div[@class="text-left"]/a/@href')

name = html.xpath('//div[@class="text-left"]/a/text()')

num = html.xpath('//div[@class="navigation ignore-select"]/a/text()')[-2]

f = {}

for i in range(len(name)):

f= urlprint(i,name)

for k in range(int(num)-1):

search_start = 2 + k

result_from = 11 + 10*k

data = {

'do': 'search',

'subaction': 'search',

'search_start': str(search_start),

'full_search':'0' ,

'result_from': str(result_from),

'story': ventsim

}

req = session.post('http://www.lavteam.org/index.php?do=search', data=data).text

html = etree.HTML(req)

url = html.xpath('//div[@class="text-left"]/a/@href')

name = html.xpath('//div[@class="text-left"]/a/text()')

for j in range(len(name)):

f[(k+1)*10+j] = url[j]

print((k+1)*10+j,name[j])

return f

四:进入详情界面

我们从上一步查询的返回值中,找到软件详情页面的链接,然后进行请求,抓包得到的结果:

Request URL:http://lavteam.org/2018/04/02/howden-group-ventsim-visual-premium-v4869.html

Request Method:GETIDA Console, Courier New, monospace">然后再用python进行构造这个请求,代码如下:

def intopage(url):

page = session.get(url).text

html = etree.HTML(page)

url = html.xpath('//a[@target="_blank" and @Class = "medium blue awesome"or @class = "medium red awesome" or @class = "small blue awesome" or @class = "small red awesome" or @class = "large blue awesome" or @class = "large red awesome"]/@href')

return url五、下载页面

分析可知,其点击进入下载页面的链接在下载页面可以抓包抓到,他是一个get请求,其抓包得到的headers如下:

Request URL:http://files.lavteam.org/leech?cat=warez%2FPrograms%2FVentSim&file=Howden.Ventsim.Visual.Premium.v4.8.6.9.rar

Request Method:GET其构造的代码如下:

def dawnload(url,path,Referer):

headers = {

'Host': 'files.lavteam.org',

'Referer': Referer,

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',

}

rep = session.get(url,headers = headers).text

pat = 'accesskey="p">'

session_html = re.compile(pat).findall(rep)[0][2:-2].split('=')

session_url = 'http://files.lavteam.org/download/'+session_html[1][:-4]+'/'+session_html[3]

name = session_html[3]

# print(session_url)

yanzheng(url,path,session_url,name)

六、验证

验证码的验证,我们需要请求获取验证码图片,然后我是介入百度的文字识别接口,自动识别验证码内容,然后作为请求验证的表单进行求求验证,如果验证码不正确,则再次进行验证,如果验证码正确,则等待5s,进行下载,代码如下:def yanzheng(url,path,session_url,name):

img_url = 'http://files.lavteam.org/img.php?size=3'

res = session.get(img_url)

with open('img.jpg', 'wb') as f:

f.write(res.content)

img = shibie('img.jpg')

data = {

'vImageCodP': img,

'checkimagecode': '(unable to decode value)',

}

header = {

'Host': 'files.lavteam.org',

'Origin': 'http://files.lavteam.org',

'Referer': url,

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',

}

res = session.post(url, data=data, headers=header).text

html = etree.HTML(res)

l = html.xpath('//div/@id')

if "downloadhtml" in l:

print('验证码正确!')

print('请等待10s!')

time.sleep(10)

if not os.path.exists(path):

os.makedirs(path)

data = {

'download': '(unable to decode value)',

}

heade = {

'Connection': 'keep-alive',

'Host': 'files.lavteam.org',

'Origin': 'http://files.lavteam.org',

'Referer': url,

'Upgrade-Insecure-Requests': '1',

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36',

}

print('开始下载'+ name +',可能需要很长时间,请耐心等待...')

res = session.post(session_url, data=data, headers=heade)

with open(path + name, 'wb') as f:

f.write(res.content)

print('下载完成!')

else:

print('验证码错误,请重新输入验证码!!!')

yanzheng(url,path,session_url,name)七、百度识别接口

在用百度文字是别的时候,我还对图片当中的早点进行了去燥,位的是识别率更高,其整体代码如下:

def shibie(img):

# 下面3个变量请自行更改

APP_ID = '11620307'

API_KEY = 'Nl2oc5uuoPPkGMtoLGCUGgVj'

SECRET_KEY = 'bF48ggt4d891NFhDHPmfjzGR3DvY4XLO'

aipOcr = AipOcr(APP_ID, API_KEY, SECRET_KEY)

filePaths = img

filePath = Image.open(filePaths)

filePath = filePath.convert('L')

threshold = 127

table = []

for i in range(256):

if i < threshold:

table.append(0)

else:

table.append(2)

filePath = filePath.point(table, '1')

filePath.save("imgage.png")

def get_file_content(filePath):

with open(filePath, 'rb') as fp:

return fp.read()

# 定义参数变量

options = {

'detect_direction': 'true',

'language_type': 'CHN_ENG',

}

# 调用通用文字识别接口

filePathss = "imgage.png"

result = aipOcr.basicAccurate(get_file_content(filePathss), options)

img = result['words_result'][0]['words']

imgs = img.replace(' ','')

print(imgs)

return imgs

lavteamshibie.rar

(2.26 KB, 下载次数: 78)

2019-5-8 09:33 上传

点击文件名下载附件

详细代码

下载积分: 吾爱币 -1 CB希望得到大家的热心于评分。

怎么在python下载网站内容-分析某网站,并利用python自动登陆该网站,下载网站内容...相关推荐

  1. 异动分析(四)利用Python计算指标贡献度

    异动分析(四)利用Python计算指标贡献度 小P:有些异动的原因是多方面的,我看网上说可以通过计算贡献度进行量化. 小H:是的,容我想想- 虽然不是必要的,但有时候异动的原因多个,通过计算每个原因的 ...

  2. 用python做一个舆情分析系统_如何用Python做舆情时间序列可视化?

    如何批量处理评论信息情感分析,并且在时间轴上可视化呈现?舆情分析并不难,让我们用Python来实现它吧. 痛点 你是一家连锁火锅店的区域经理,很注重顾客对餐厅的评价.从前,你苦恼的是顾客不爱写评价.最 ...

  3. 基于python的智能文本分析 书_推荐一本Python数据分析必备工具书

    身处大数据领域,我们每天都不得不与各种各样的数据打交道,无论是围绕数据去进行计算还是分析,它们都分属大数据领域的一个细分领域.在数据分析领域,Python语言一直一枝独秀,本文作者在数据分析领域深耕多 ...

  4. 怎么用python编写个apk_【android】如何利用python做Android项目自动化构建,并一键实现构建结果发送到钉钉通知以及通过二维码下载apk或者其他处理等功能...

    今天我们来谈一谈用python做Android项目自动化构建的过程.我们知道在常规的Android开发过程中,开发人员打包的时候需要在Android Studio当中进行,或者通过gradle命令,但 ...

  5. python酒店评论分析_GitHub - huangpd/senti_analysis: 利用Python实现酒店评论的中文情感分析...

    利用Python实现酒店评论的情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过 ...

  6. python酒店评论分析_GitHub - yikedouer/senti_analysis: 利用Python实现酒店评论的中文情感分析...

    利用Python实现酒店评论的情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过 ...

  7. python酒店评论分析_GitHub - jiahuiiii/senti_analysis: 利用Python实现酒店评论的中文情感分析...

    利用Python实现酒店评论的情感分析 情感极性分析,即情感分类,对带有主观情感色彩的文本进行分析.归纳.情感极性分析主要有两种分类方法:基于情感知识的方法和基于机器学习的方法.基于情感知识的方法通过 ...

  8. python分析nginx日志_利用python分析nginx日志

    最近在学习python,写了个脚本分析nginx日志,练练手.写得比较粗糙,但基本功能可以实现. 脚本功能:查找出当天访问次数前十位的IP,并获取该IP来源,并将分析结果发送邮件到指定邮箱. 实现前两 ...

  9. python分析每月销售数据_利用Python进行某单品销售数据分析

    本篇文章将利用Python工具对一份某商品的销售数据进行如下几个方面的分析,结合业务场景,构件常用业务指标,以从销售数据中挖掘出其潜在的商业价值,促进运营.用户消费趋势分析: 用户个体消费分析: 用户 ...

  10. python如何做敏感度分析_1stopt、matlab和python用morris、sobol方法实现参数敏感性分析...

    首先看抛物线函数: 现在我取a=2,b=3,c=4 ,得到如下函数: x或t都是指自变量,就不改了,一个意思. 问题是,我想知道对于此数据和模型,参数a,b,c的敏感性,也就是y的改变量与a.b.c的 ...

最新文章

  1. 系统技术方案 系统构架_构架系统时应注意的事项
  2. Jenkins入门总结
  3. 动态资料导出导入平台(一)
  4. TensorFlow2简单入门-单词嵌入向量
  5. python 仿真_Python SimPy 仿真系列 (2)
  6. oracle 如何 更改 ref cursor 结果集,oracle – 如何从anther调用一个存储过程并修改返回的refcursor?...
  7. python法则_python复数及计算法则
  8. 学生档案信息管理案例
  9. Windows下hadoop配置
  10. plsql:导出数据到excel
  11. 2023年厦门大学材料与化工考研考情与难度、参考书及上岸前辈初复试备考经验
  12. 故事感悟:管道与挑水
  13. 测量运放的输入偏置电流 - 实验准备
  14. windows10桌面_windows10 美化桌面加强能力
  15. 《A Survey on Evolutionary Computation for Complex Continuous Optimization》笔记
  16. OpenCV 图像无法显示 (python)
  17. FileReader与FileWriter使用一例
  18. 【Redis】主从复制
  19. C# Winform 文本面板带滚动条
  20. 【conda】conda环境的复制移植的两种方法

热门文章

  1. python查询mysql 乱码_python查询mysql中文乱码问题
  2. python12306抢票犯法_Python实例 2-12306抢票(一) 登陆
  3. sob攻略超详细攻略_北海涠洲岛旅游超详细住宿攻略!!!
  4. Esper——内存计算、事件驱动、SQL支持
  5. Xshell dns tunnel攻击
  6. NoSQL生态系统——事务机制,行锁,LSM,缓存多次写操作,RWN
  7. JVM优化之调整大内存分页(LargePage)
  8. SourceTree -- Installation has failed
  9. 区块链死亡项目列表小程序:死亡硬币
  10. 个人作业1 四则运算题目生成程序