我正在嘗試從該網(wǎng)站的第二行中抓取 url:https://www.cwb.gov.tw/V7/js/HDRadar_1000_n_val.js。我使用 python 來爬行,但不確定是否應該使用 beautifulsoup 或正則表達式。我使用python BS4來爬行。但我不知道如何僅使用 url 捕獲第二行。在我的嘗試中,它捕獲了所有網(wǎng)站。import requestsimport refrom bs4 import BeautifulSoupres = requests.get('https://www.cwb.gov.tw/V7/js/HDRadar_1000_n_val.js')soup = BeautifulSoup(res.text,'html.parser')print(soup)預期的:/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271140.png實際的:var HDRadar_1000_n_val=new Array( newArray/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271140.png("2019/03/27 11:40","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271140.png"), new Array("2019/03/27 11:30","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271130.png"), new Array("2019/03/27 11:20","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271120.png"), new Array("2019/03/27 11:10","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271110.png"), new Array("2019/03/27 11:00","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271100.png"), new Array("2019/03/27 10:50","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271050.png"), new Array("2019/03/27 10:40","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271040.png"), new Array("2019/03/27 10:30","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271030.png"), new Array("2019/03/27 10:20","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271020.png"), new Array("2019/03/27 10:10","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271010.png"), new Array("2019/03/27 10:00","/V7/observe/radar/Data/HD_Radar/CV1_1000_201903271000.png"), new Array("2019/03/27 ...
2 回答

紅顏莎娜
TA貢獻1842條經(jīng)驗 獲得超13個贊
您無法使用 解析文本bs4。因此,請使用split. 然后遍歷每一行并拆分,分隔符以獲取url.
lines = res.text.strip(');\n').split('),\n')
for line in lines:
print(line.split(',')[-1].strip('"'))

RISEBY
TA貢獻1856條經(jīng)驗 獲得超5個贊
這是如何做到的:
import requests
import re
res = requests.get('https://www.cwb.gov.tw/V7/js/HDRadar_1000_n_val.js')
pat = re.compile("(/V7/.*?.png)")
p = 0
while True:
m = pat.search(res.text, p)
if not m:
break
print m.group(1)
p = m.end()
這應該是非常有效的。原始數(shù)據(jù)沒有額外的副本或拆分,編譯后的正則表達式是一種非??焖俚臄?shù)據(jù)搜索方式。
任何獲得正確結(jié)果并在一秒鐘內(nèi)完成的解決方案都應該沒問題。您可能需要一個更大的列表才能發(fā)揮作用。
添加回答
舉報
0/150
提交
取消