[已解决]求助网页内容的正则筛选导出
本帖最后由 小兵 于 2021-4-19 21:03 编辑太久不写东西了,本来就不怎么会,现在更是忘光了,只好求助大家了
如何获取商品名称、链接、销量?注:原价有时候有、有时候没有
发哥给的代码如下,有原价可正常获取,部分商品没有原价时(图1右侧)获取价格错位,当所有商品均只有现价时什么也获取不到
#include <array.au3>
Local $hFile = FileOpen('1.txt')
Local $sText = FileRead($hFile)
FileClose($hFile)
Global $aTaobaoItem
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 NotMod(UBound($aInfo),4) Then
; MsgBox(0,UBound($aInfo),UBound($aInfo)/4)
ReDim $aTaobaoItem
Local $iIndex = 0
For $i = 0 To UBound($aInfo) - 1 Step 4
$aTaobaoItem[$iIndex] = 'https:'&$aInfo[$i]
$aTaobaoItem[$iIndex] = $aInfo[$i+1]
$aTaobaoItem[$iIndex] = $aInfo[$i+2]
$aTaobaoItem[$iIndex] = $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源码
本帖最后由 afan 于 2021-4-18 19:59 编辑
Highlight code by AuREHelper
(?si)"J_TGoldData"\h+href="([^"](?#)+).+?img\h+alt="([^"](?#)+)".+?>¥.+?>([\d.](?#)+)<.+?">已售:<.+?>(\d+)<
注意,论坛的问题导致字符发生改变,以上贴出的字符 ,即¥需自行替换
谢A版,贴上销量图供对比输出结果,呃。。。那么多1元钱的硬盘赶紧来一打挖矿
小兵 发表于 2021-4-18 15:35
谢A版,贴上销量图供对比输出结果,呃。。。那么多1元钱的硬盘赶紧来一打挖矿
自己不会改一下…… 本帖最后由 小兵 于 2021-4-18 20:46 编辑
afan 发表于 2021-4-18 15:20
使用2楼方法得到与2楼同样的结果:第三行开始不正确 - - ||
¥是改正确的
A大可否分享一下上面的正则
上面的字符在论坛发帖有问题,没有匹配结果居然不反馈。
Highlight code by AuREHelper
(?si)"J_TGoldData"\h+href="([^"](?#)+).+?img\h+alt="([^"](?#)+)".+?c-price">([\d.](?#)+).+?">已售.+?>(\d+)<
一直在线关注进展的,可能大大误解了,谢谢A大,8楼正则匹配完美 解决了就及时修改标题,添加“已解决”
页:
[1]