猿问

如何使用 Python Crawler 抓取第二行文本

我正在尝试从该网站的第二行中抓取 url:https://www.cwb.gov.tw/V7/js/HDRadar_1000_n_val.js。


我使用 python 来爬行,但不确定是否应该使用 beautifulsoup 或正则表达式。


我使用python BS4来爬行。但我不知道如何仅使用 url 捕获第二行。在我的尝试中,它捕获了所有网站。


import requests


import re


from bs4 import BeautifulSoup


res = 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( new

Array/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 

...


千万里不及你
浏览 188回答 2
2回答

红颜莎娜

您无法使用 解析文本bs4。因此,请使用split. 然后遍历每一行并拆分,分隔符以获取url.lines = res.text.strip(');\n').split('),\n')for line in lines:    print(line.split(',')[-1].strip('"'))

RISEBY

这是如何做到的:import requestsimport reres = requests.get('https://www.cwb.gov.tw/V7/js/HDRadar_1000_n_val.js')pat = re.compile("(/V7/.*?.png)")p = 0while True:    m = pat.search(res.text, p)    if not m:        break    print m.group(1)    p = m.end()这应该是非常有效的。原始数据没有额外的副本或拆分,编译后的正则表达式是一种非常快速的数据搜索方式。任何获得正确结果并在一秒钟内完成的解决方案都应该没问题。您可能需要一个更大的列表才能发挥作用。
随时随地看视频慕课网APP

相关分类

Python
我要回答