如何从网站提取的信息中获取 url

How to get the url from extracted information from a website

所以基本上我陷入了不知道如何从网站提取的数据中 url 的问题。

这是我的代码:

import requests
from bs4 import BeautifulSoup

req = requests.get('https://api.randomtube.xyz/video.get?chan=2ch.hk&board=b&page=1')

soup = BeautifulSoup(req.content, "html.parser")

print(soup.prettify())

我得到了很多关于输出的信息,但我唯一需要的是url,希望有人能帮助我。

P.S:

它给了我这个信息:

{"response":{"items":[{"url":"https:\/\/2ch.hk\/b\/src\/262671212\/16440825183970.webm","type":"video\/webm","filesize":"20259","width":1280,"height":720,"name":"1521967932778.webm","board":"b","thread":"262671212"},{"url":"https:\/\/2ch.hk\/b\/src\/261549765\/16424501976450.webm","type":"video\/webm","filesize":"12055","width":1280,"height":720,"name":"1526793203110.webm","board":"b","thread":"261549765"}...

但我只需要这一部分 https:\/\/2ch.hk\/b\/src\/261549765\/16424501976450.webm(不完全是这个 url,只是举个例子)

问题是您告诉 BeautifulSoup 将 JSON 数据解析为 HTML。你可以通过下面的代码

更直接的得到你需要的URL
import json
import requests
from bs4 import BeautifulSoup

req = requests.get('https://api.randomtube.xyz/video.get?chan=2ch.hk&board=b&page=1')

data = json.loads(req.content)
my_url = data['response']['items'][0]['url']

url 产生 json 数据。 Beautifulsoup无法抓取json数据,要抓取json数据,可以按照下例进行。

import requests
import json
        
data = requests.get('https://api.randomtube.xyz/video.get?chan=2ch.hk&board=b&page=1').json()
        
url= data['response']['items'][0]['url']
if url:
   url=url.replace('.webm','.mp4')
   print(url)

输出:

https://2ch.hk/b/src/263361969/16451225633240.mp4

你可以这样做:

url_array = []

for item in soup['response']['items']:
  url_array.append(item['url'])

我想如果 API returns JSON 数据那么直接解析它应该更好。