|
60鱼币
问题来源:
爬虫,获取数据,这个数据很容易获取
问题在于:
这里几个数据只有一个会在网页上显示出来(也就是我要获取的数据),其他几个数据没有
每次访问,刷新网页时,这里的网页代码都会变
具体情况为:
真实数据(我要的那个数字,会在网页上显示的那个数字)的位置会变,这里在网页上显示的数字时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)
用以上代码来修改图片灰度,都没啥用
跪求各位大佬给我出出主意吧,以上两个问题随便哪个都可以
或者有没有其他的办法,本质上我就是要获取网页上那个数字
用 selenium 的话应该能够在页面上运行 JavaScript 脚本,您可以参考一下文档(大概是 driver.execute_script )
获取您说的这一列数据其实主要是排除不可见的元素,用 jQyery 扩展的选择器就能够完成了。我测试了一下 - $('div.result_totalNumber:visible')
复制代码这个代码就能够选择当前页面上数量这一列的可见的元素,应该只要注意排除一下表头和第一行的广告应该就可以了
关于翻页、和供货商关联之类的问题您可能还要自己再研究一下,应该相对简单。同时猜测其他列排除混淆也可以使用类似的方式( visible 选择器)
|
最佳答案
查看完整内容
用 selenium 的话应该能够在页面上运行 JavaScript 脚本,您可以参考一下文档(大概是 driver.execute_script )
获取您说的这一列数据其实主要是排除不可见的元素,用 jQyery 扩展的选择器就能够完成了。我测试了一下这个代码就能够选择当前页面上数量这一列的可见的元素,应该只要注意排除一下表头和第一行的广告应该就可以了
关于翻页、和供货商关联之类的问题您可能还要自己再研究一下,应该相对简单。同时猜测其他列排除混 ...
|