找回密码
 加入
搜索
查看: 1655|回复: 9

[网络通信] [已解决]求助网页内容的正则筛选导出

[复制链接]
发表于 2021-4-18 14:52:42 | 显示全部楼层 |阅读模式
本帖最后由 小兵 于 2021-4-19 21:03 编辑

太久不写东西了,本来就不怎么会,现在更是忘光了,只好求助大家了

如何获取商品名称、链接、销量?注:原价有时候有、有时候没有




发哥给的代码如下,有原价可正常获取,部分商品没有原价时(图1右侧)获取价格错位,当所有商品均只有现价时什么也获取不到
#include <array.au3>
Local $hFile = FileOpen('1.txt')
Local $sText = FileRead($hFile)
FileClose($hFile)
Global $aTaobaoItem[1][4] 
Local $aInfo = StringRegExp($sText,'class\s*?=\s*?"item-name[^<>]+?href\s*?=\s*?"(//item\.taobao\.com/item\.htm\?id=\d+)"[^<>]+?>\s*?(\S.*?)</a[\s\S]+?c-price"\s*>([\d\.]+?)<b><[\s\S]+?</b>sale-num"\s*>(\d+?)<',3);
$hw2 = FileOpen("2.txt", 10)
        
If Not  Mod(UBound($aInfo),4) Then
;         MsgBox(0,UBound($aInfo),UBound($aInfo)/4)
        ReDim $aTaobaoItem[UBound($aInfo)/4][4]
        Local $iIndex = 0
        For $i = 0 To UBound($aInfo) - 1 Step 4
                $aTaobaoItem[$iIndex][0] = 'https:'&$aInfo[$i]
                $aTaobaoItem[$iIndex][1] = $aInfo[$i+1]
                $aTaobaoItem[$iIndex][2] = $aInfo[$i+2]
                $aTaobaoItem[$iIndex][3] = $aInfo[$i+3]

                FileWriteLine(@DesktopDir & "\2.txt", $i/4+1 &' - '&$aInfo[$i+1] &@CRLF& 'https:'&$aInfo[$i] &@CRLF& '价格:'&$aInfo[$i+2] &@CRLF& '销量:'&$aInfo[$i+3] &@CRLF&@CRLF)
                $iIndex+=1
        Next
        _ArrayDisplay($aTaobaoItem)
EndIf

FileClose($hw2)



发哥的正则在没有蓝框部分时无法正常获取,请教如何修改?

或者各位有什么简单易懂的写法指点指点,感谢各位,感谢发哥

附件1.txt是两页商品的html源码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2021-4-18 15:20:15 | 显示全部楼层
本帖最后由 afan 于 2021-4-18 19:59 编辑

Highlight code by AuREHelper
(?si)"J_TGoldData"\h+href="([^"](?#)+).+?img\h+alt="([^"](?#)+)".+?>¥.+?>([\d.](?#)+)<.+?">已售:<.+?>(\d+)<
注意,论坛的问题导致字符发生改变,以上贴出的字符 ,即¥需自行替换



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2021-4-18 15:35:27 | 显示全部楼层
谢A版,贴上销量图供对比输出结果,呃。。。那么多1元钱的硬盘赶紧来一打挖矿


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2021-4-18 15:37:36 | 显示全部楼层
小兵 发表于 2021-4-18 15:35
谢A版,贴上销量图供对比输出结果,呃。。。那么多1元钱的硬盘赶紧来一打挖矿

自己不会改一下……
 楼主| 发表于 2021-4-18 15:38:01 | 显示全部楼层
本帖最后由 小兵 于 2021-4-18 20:46 编辑


使用2楼方法得到与2楼同样的结果:第三行开始不正确 - - ||
¥是改正确的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2021-4-18 16:04:58 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2021-4-18 18:37:30 | 显示全部楼层
A大可否分享一下上面的正则
发表于 2021-4-18 21:46:04 | 显示全部楼层

上面的字符在论坛发帖有问题,没有匹配结果居然不反馈。
Highlight code by AuREHelper
(?si)"J_TGoldData"\h+href="([^"](?#)+).+?img\h+alt="([^"](?#)+)".+?c-price">([\d.](?#)+).+?">已售.+?>(\d+)<


 楼主| 发表于 2021-4-19 09:18:30 | 显示全部楼层
一直在线关注进展的,可能大大误解了,谢谢A大,8楼正则匹配完美
发表于 2021-4-19 12:51:01 | 显示全部楼层
解决了就及时修改标题,添加“已解决”
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-27 09:52 , Processed in 0.079075 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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