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

news/2024/5/19 4:51:59/文章来源:https://blog.csdn.net/weixin_37988176/article/details/109430580

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

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

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

二:登陆

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

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

none.gif

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

其表单为:

none.gif

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 imgsrar.gif

lavteamshibie.rar

(2.26 KB, 下载次数: 78)

2019-5-8 09:33 上传

点击文件名下载附件

详细代码

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

4.gif

4.gif

4.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_703588.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站应用中MySQL的架构演变史

没有什么东西是一成不变的&#xff0c;包含我们的理想和生活&#xff01;MySQL作为一个免费的开源的关系型数据库&#xff0c;深受大家喜爱&#xff0c;从最初的无人问津到当下的去IOE&#xff0c;都体现出了MySQL举足轻重的作用。今天我们就从淘宝的发展来阐述MySQL在大型网站…

python爬虫怎么爬同一个网站的多页数据-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

原标题&#xff1a;不踩坑的Python爬虫&#xff1a;如何在一个月内学会爬取大规模数据Python爬虫为什么受欢迎 如果你仔细观察&#xff0c;就不难发现&#xff0c;懂爬虫、学习爬虫的人越来越多&#xff0c;一方面&#xff0c;互联网可以获取的数据越来越多&#xff0c;另一方面…

python、语言的主网站网址是-国产编程语言木兰被网友扒皮:原来是Python语言打包...

日前中科院计算所下属单位发布了编程语言木兰&#xff0c;号称计算所编译实验室完全自主设计、开发和实现的编程语言&#xff0c;与之配套的编译器与集成开发工具也完全由团队自主实现。不过该语言发布之后&#xff0c;网友发现它其实是Python语言打包的&#xff0c;很多函数都…

python写网站和java写网站的区别-为什么说Java和Python现阶段并不适合普通网站建设...

经过20多年的发展&#xff0c;网站开发技术已经非常成熟&#xff0c;用于网站制作的程序语言也有很多。常见的当然是php和asp.net&#xff0c;特别是php程序语言&#xff0c;虽然其已经有很多年历史也历经多次迭代升级&#xff0c;但在凭借其开源、轻巧等优势&#xff0c;在网站…

iOS如何在iTunes网站查看并下载APP的dsym文件

有时需要拿到app的dsym符号表文件&#xff0c;恰巧本地的构建版本文件已经不在了&#xff0c;那么我们还可以在iTunes那边获取到。 步骤不复杂&#xff1a; 1、登陆itunes网站 https://itunesconnect.apple.com/ 2、找到你的APP&#xff0c;点进去&#xff0c;选择【活动】->…

网站架构的演变

2019独角兽企业重金招聘Python工程师标准>>> 单一应用架构 当网站流量很小时&#xff0c;只需一个应用&#xff0c;将所有功能都部署在一起&#xff0c;以减少部署节点和成本。此时&#xff0c;用于简化增删改查工作量的数据访问框架(ORM)是关键。 垂直应用架构 当访…

前端开发需要掌握的SEO的知识点

SEO 工作的目的  seo 的工作目的是为了让网站更利于让各大搜索引擎抓取和收录&#xff0c;增加产品的曝光率。 SEO 注意事项  1. 网站 TDK 标签的设置。title,description,keywords&#xff0c;根据产品业务&#xff0c;概括出核心关键词作为TDK的内容&#xff0c;每个页面…

cache-control_网站 cache control 最佳实践

有时&#xff0c;当第二次访问网站时&#xff0c;看起来比较怪&#xff0c;样式不正常。通常&#xff0c;是因为 cache control 缓存控制策略定义不正确&#xff0c;导致服务端最新部署之后客户端没有接收到最新的更改。本文将向您展示正确的缓存设置&#xff0c;以便在每次部署…

spring配置文件_SpringBoot入门建站全系列(二十三)配置文件优先级及自定义配置文件...

SpringBoot入门建站全系列&#xff08;二十三&#xff09;配置文件优先级及自定义配置文件一、概述Spring Boot允许多种配置来源&#xff0c;官网是这样说的&#xff1a;Spring Boot使用一种非常特殊的PropertySource顺序&#xff0c;旨在允许合理地覆盖值。按以下顺序考虑属性…

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件&#xff0c;这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面&#xff0c;该网页如下&#xff1a;实现代码如下&#xff1a; import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

如何用python创建一个下载网站-用Python下载一个网页保存为本地的HTML文件实例...

我们可以用Python来将一个网页保存为本地的HTML文件&#xff0c;这需要用到urllib库。 比如我们要下载山东大学新闻网的一个页面&#xff0c;该网页如下&#xff1a;实现代码如下&#xff1a; import urllib.request def getHtml(url): html urllib.request.urlopen(url).read…

一步步学习SPD2010--第十一章节--处理母版页(10)--重置母版页到网站定义

一步步学习SPD2010--第十一章节--处理母版页&#xff08;10&#xff09;--重置母版页到网站定义 在第一章节&#xff0c;你将内容页重置为网站定义。重置母版页到网站定义也没有什么不同。你丢失了在页面上做出的自定义&#xff0c;包括任何静态文本、图片、控件或Web部件。SPD…

拥抱单页网站! jQuery全屏滚动插件fullPage.js

不知道从什么时候开始,单页网站就悄悄走进人们的视线,尤其是国外的网站,更是钟爱单页网站.制作一个全屏滚动的效果,然后每个滚动页弄一个好看的背景色,配上一些描述性的文字,大家都喜欢这么弄,仿佛逼格瞬间可以爆表似的.当然,不得不承认,介绍产品的页面用单页网站似乎确实高大上…

如何实现网站文件动静分离

背景 传统动静不分离的产品架构&#xff0c;随着访问量在增长&#xff0c;性能会成为瓶颈。以一个常见的Web站点为例。www.acar.com是一个刚建立汽车资讯车友交流网站&#xff0c;主站用Php搭建&#xff0c;有10GB的图片素材&#xff0c;部分JS文件。目前购买一台ECS放置所有程…

自学python推荐书籍同时找哪些来实践-Python学习路上有这些论坛、网站、书籍与你同行...

Python学习路上有这些论坛、网站、书籍与你同行 2019-05-03 18:24:41 613点赞 9508收藏 164评论 创作立场声明&#xff1a;希望我的一些经验可以给你少走一些弯路&#xff0c;但人总得走点弯路才可以成长。别怕&#xff0c;在学习python的路上有我陪着你。人生苦短&#xff0c;…

java用nat123_「网速123」使用nat123怎样解决网速慢的问题? - seo实验室

网速123许多人在使用Nat123时会遇到网速慢的问题&#xff0c;下面就来说说相关的解决方法。1、cname正确指向。cname指向的唯一性。使用自己的域名时&#xff0c;如设置cname指向nat123的&#xff0c;确保cname的唯一性&#xff0c;不对应的cname指向解析慢或其他不可预知的问题…

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

本帖最后由 愤怒的小车 于 2019-5-8 09:41 编辑 一&#xff1a;本代码是我研究了好久才写出来&#xff0c;七功能主要有自动登陆、自动识别验证码、以及自动识别下载格式进行判断下载&#xff01; 首先&#xff0c;搬上我们的主角网址&#xff0c;http://lavteam.org/&#xff…

python爬虫怎么爬同一个网站的多页数据-不踩坑的Python爬虫:如何在一个月内学会爬取大规模数据...

原标题&#xff1a;不踩坑的Python爬虫&#xff1a;如何在一个月内学会爬取大规模数据Python爬虫为什么受欢迎 如果你仔细观察&#xff0c;就不难发现&#xff0c;懂爬虫、学习爬虫的人越来越多&#xff0c;一方面&#xff0c;互联网可以获取的数据越来越多&#xff0c;另一方面…

高性能网站原则

https://blog.csdn.net/u011650048/article/details/51754423 1、图片压缩&#xff1a; 静态页面验收时&#xff0c;检查每张图片不能超过200K&#xff0c;每个页面不能超过2.5M CMS后台上传图片&#xff0c;检查每张图片不能超过200K&#xff0c;尽量不要使用原图&#xff0c;…

python从入门到入土表情包-Python开发个人专属表情包网站,表情在手,天下我有...

"表情包”是一种利用图片来表示感情的一种方式。表情包是在社交软件活跃之后&#xff0c;形成的一种流行文化&#xff0c;表情包流行于互联网上面&#xff0c;基本人人都会发表情。 曾经你是否也有过找不到表情包去应对别人的时候。 今天小编分享如何用Python开发个人专属…