如何从网站提取的信息中获取 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 数据那么直接解析它应该更好。
所以基本上我陷入了不知道如何从网站提取的数据中 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。你可以通过下面的代码
更直接的得到你需要的URLimport 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 数据那么直接解析它应该更好。