鱼C论坛

 找回密码
 立即注册
查看: 3960|回复: 17

[已解决]python 爬虫(数据存在干扰),图片识别

[复制链接]
发表于 2022-9-28 18:40:41 | 显示全部楼层 |阅读模式
60鱼币
捕获.PNG
问题来源:
爬虫,获取数据,这个数据很容易获取
问题在于:
这里几个数据只有一个会在网页上显示出来(也就是我要获取的数据),其他几个数据没有
每次访问,刷新网页时,这里的网页代码都会变
具体情况为:
真实数据(我要的那个数字,会在网页上显示的那个数字)的位置会变,这里在网页上显示的数字时2500,在第4个div标签里,其他几个div在网页上根本找不到
然而下次访问,刷新,真实数据就不在第4个div标签了,会到其他任意一个里都有可能,而且这些莫名其妙的div数量还不定,class的内容前半段都是一样的result_totalNumber,后半段同样是每次访问,刷新都会变


这种情况导致我没有办法准确定位到对应标签去获取数据,求问各位大佬如何解决?
备注:network也开不了,点开network显示的是正在录制网络活动


在解决不了这个情况下,我尝试进行截图后,使用pytesseract来识别图片
由此产生了新的问题,图片识别的精准度让人头秃
要识别的数据都是数字,结果0,3,6,7,8,9等数字有时会被搞混,也会出现识别成 e, g, f, s, o等各种莫名其妙的情况,而且个位数的数字基本不会被识别出来,准确率大概在80%左右,可没有约等于100%的准确率也没啥用啊

我尝试用img.resize来放大图片


img = img.convert('RGB')
enhancer = ImageEnhance.Color(img)
enhancer = enhancer.enhance(0)
enhancer = ImageEnhance.Brightness(enhancer)
enhancer = enhancer.enhance(2)
enhancer = ImageEnhance.Contrast(enhancer)
enhancer = enhancer.enhance(8)
enhancer = ImageEnhance.Sharpness(enhancer)
img = enhancer.enhance(20)


用以上代码来修改图片灰度,都没啥用

跪求各位大佬给我出出主意吧,以上两个问题随便哪个都可以
或者有没有其他的办法,本质上我就是要获取网页上那个数字

最佳答案
2022-9-28 18:40:42
用 selenium 的话应该能够在页面上运行 JavaScript 脚本,您可以参考一下文档(大概是 driver.execute_script )
获取您说的这一列数据其实主要是排除不可见的元素,用 jQyery 扩展的选择器就能够完成了。我测试了一下
$('div.result_totalNumber:visible')
这个代码就能够选择当前页面上数量这一列的可见的元素,应该只要注意排除一下表头和第一行的广告应该就可以了
关于翻页、和供货商关联之类的问题您可能还要自己再研究一下,应该相对简单。同时猜测其他列排除混淆也可以使用类似的方式( visible 选择器)

最佳答案

查看完整内容

用 selenium 的话应该能够在页面上运行 JavaScript 脚本,您可以参考一下文档(大概是 driver.execute_script ) 获取您说的这一列数据其实主要是排除不可见的元素,用 jQyery 扩展的选择器就能够完成了。我测试了一下这个代码就能够选择当前页面上数量这一列的可见的元素,应该只要注意排除一下表头和第一行的广告应该就可以了 关于翻页、和供货商关联之类的问题您可能还要自己再研究一下,应该相对简单。同时猜测其他列排除混 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-28 18:40:42 | 显示全部楼层    本楼为最佳答案   
用 selenium 的话应该能够在页面上运行 JavaScript 脚本,您可以参考一下文档(大概是 driver.execute_script )
获取您说的这一列数据其实主要是排除不可见的元素,用 jQyery 扩展的选择器就能够完成了。我测试了一下
$('div.result_totalNumber:visible')
这个代码就能够选择当前页面上数量这一列的可见的元素,应该只要注意排除一下表头和第一行的广告应该就可以了
关于翻页、和供货商关联之类的问题您可能还要自己再研究一下,应该相对简单。同时猜测其他列排除混淆也可以使用类似的方式( visible 选择器)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-28 18:55:15 | 显示全部楼层
可以把网址说一下吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-28 19:01:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-28 19:02:45 | 显示全部楼层
月下孤井 发表于 2022-9-28 18:55
可以把网址说一下吗

热门搜索随便点个进去就行,就显示数量的那个数据
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-28 20:21:26 | 显示全部楼层
<div class="result_factory" title="ST">ST</div>
                                <div class="result_batchNumber" title="21+">21+</div>
                                                                                                                        <div class="result_totalNumber jvdnikhdyvggmfz" title="5060">5060</div>
                                                                                                                                        <div class="result_totalNumber nxnwaojfxudjjew" title="2380">2380</div>
                                                                                                                                        <div class="result_totalNumber iwpjacfjhbvwjwd" title="8460">8460</div>
                                                                                                        <div class="result_totalNumber qyfvvxjjzjamfhr" title="3160">3160</div>
                                                                                                                                        <div class="result_totalNumber dvrgdyfvisvsprm" title="9440">9440</div>
                                                                                                                                        <div class="result_totalNumber ldsyrezljbuzhoo" title="5140">5140</div>
                                                                                                                                                                                                <div class="result_pakaging" title="LQFP100">LQFP100</div>
                                <div class="result_prompt">
                                        <div class="result_explain" title="亿鑫达微!只有原装">亿鑫达微!只有原装</div>
                                        <div class="result_kwplace" title="深圳3160" style="display:block">库位:深圳</div>
                                </div>
                                <div class="result_date" title="09-28">09-28<input type="hidden" value="2022-09-28 18:21:00"></div>
                                <div class="result_askPrice">


在你获取到数据的下一个div里,注意到里面有个类似于这样的标签:
<div class="result_kwplace" title="深圳3160" style="display:block">库位:深圳</div>
数字3160可以在这里面获取, title="深圳3160", 从这个title里面获取
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-29 12:14:49 | 显示全部楼层
月下孤井 发表于 2022-9-28 20:21
ST
                                21+
                                                                                                                        5060

捕获.PNG 捕获2.PNG
不是全都有,有部分数量被吃,还有没有库位的话title直接没数据了,而网页上是有的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-29 17:07:28 | 显示全部楼层
灰晨 发表于 2022-9-29 12:14
不是全都有,有部分数量被吃,还有没有库位的话title直接没数据了,而网页上是有的

你是通过selenium获取的数据还是,用requests获取的数据是不是混淆过的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-29 17:08:45 | 显示全部楼层
月下孤井 发表于 2022-9-29 17:07
你是通过selenium获取的数据还是,用requests获取的数据是不是混淆过的

我用的selenium
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-29 17:11:45 | 显示全部楼层
这个网站确实不太好整
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-29 17:13:20 | 显示全部楼层
月下孤井 发表于 2022-9-29 17:11
这个网站确实不太好整

之前没有这些干扰项的,轻轻松松就爬下来了,突然整这些给我整不会了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-29 17:42:36 | 显示全部楼层
月下孤井 发表于 2022-9-29 17:07
你是通过selenium获取的数据还是,用requests获取的数据是不是混淆过的

试了下requests,一样的情况,还是一堆意义不明的div混在一起,库位那里的数据也一些没有一些有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-30 15:46:33 | 显示全部楼层
灰晨 发表于 2022-9-29 17:42
试了下requests,一样的情况,还是一堆意义不明的div混在一起,库位那里的数据也一些没有一些有

你可以试着重载一下,或者用下载器下载成.html的形式再打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-8 10:14:10 | 显示全部楼层
编程追风梦 发表于 2022-9-30 15:46
你可以试着重载一下,或者用下载器下载成.html的形式再打开

放完国庆刚回来,你这个办法好像也没用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-8 19:00:03 | 显示全部楼层
dolly_yos2 发表于 2022-9-28 18:40
用 selenium 的话应该能够在页面上运行 JavaScript 脚本,您可以参考一下文档(大概是 driver.execute_scri ...

感谢,都忘了还有这招,记得之前有弄过判断元素是否可点击的,这会就忘了可以判断元素是否可见,有时就是会钻牛角尖啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-9 07:37:21 | 显示全部楼层
灰晨 发表于 2022-10-8 10:14
放完国庆刚回来,你这个办法好像也没用

没用?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-10-9 10:11:33 | 显示全部楼层

你这办法我不太懂,只是试了下在网页右键选择重新加载和另存为本地的.html文件打开,其他不是很懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-9 16:22:13 | 显示全部楼层
刚入门,从0开始学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 09:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表