Python抓取斗鱼链接不完整?8招教你解决!

2023-05-28 0 1,009

原副标题:Python截取拟钩镜像不完备?8招让你化解!

前段时间采用Python展开拟钩北京人民广播电台重要信息截取时,辨认出了两个难题,那是截取到的北京人民广播电台镜像不完备,引致难以恒定采用。历经几番进行调查和科学研究,我归纳出了下列8个各方面的化解方式。

1.难题预测

比如:

事实上如果是:

这种就可以恒定出访北京人民广播电台。因此为何会再次出现此种情形呢?

搜索引擎,因此引致他们在采用requests库展开截取时难以获得完备的北京人民广播电台镜像。

2.软件系统1:全手动堆叠

python import requests room_id =123456 url =+ room_id response = requests.get(url) print(response.text)

此种方式尽管能化解难题,但较为麻烦事,须要全手动堆叠URL。

3.软件系统2:采用urllib.parse.urljoin()

Python提供更多了两个urllib.parse.urljoin()方式,能手动堆叠URL。标识符如下表所示:

python import requests from urllib.parse import urljoin room_id =123456 base_url = url = urljoin(base_url,room/+ room_id) response = requests.get(url) print(response.text)

此种方式非常简单,只须要选定此基础URL和四元组方可。

4.软件系统3:采用程序语言

他们也能采用程序语言来相匹配北京人民广播电台镜像,并展开代替。标识符如下表所示:

Python抓取斗鱼链接不完整?8招教你解决!

python import re import requests url = pattern = pile(r(.*)/(\d+)) match = pattern.match(url) if match: base_url = match.group(1) room_id = match.group(2) url = base_url +/room/+ room_id response = requests.get(url) print(response.text)

此种方式较为灵活,能适应不同的网站和镜像格式。

5.软件系统4:采用beautifulsoup4库

beautifulsoup4是两个Python解析HTML和XML文档的库,能方便地从HTML文档中提取数据。标识符如下表所示:

python import requests from bs4 import BeautifulSoup room_id =123456 url =+ room_id response = requests.get(url) soup = BeautifulSoup(response.text,html.parser) room_url = soup.find(a,{class:play-list-link})[href] print(room_url)

此种方式非常简单,只须要采用find()方式查找选定标签方可。

6.软件系统5:采用selenium库

selenium是两个手动化测试工具,能模拟用户在浏览器上的操作。标识符如下表所示:

python from selenium import webdriver room_id =123456 url =+ room_id driver = webdriver.Chrome() driver.get(url) room_url = driver.find_element_by_css_selector(a.play-list-link).get_attribute(href) print(room_url)

此种方式较为麻烦事,须要安装Chrome浏览器和对应的驱动程序。

7.软件系统6:采用pyppeteer库

pyppeteer是两个Python版的pu

python import asyncio from pyppeteer import launch async def main(): room_id =123456 url =+ room_id browser = await launch({headless: True}) page = await browser.newPage() await page.goto(url) room_url = await page.querySelectorEval(a.play-list-link,e=>e.href) print(room_url) await browser.close() asyncio.get_event_loop().run_until_complete(main())

此种方式较为复杂,须要采用异步编程方式。

8.软件系统7:采用第三方API

归纳

以上就是我归纳的8种化解拟钩截取镜像不完备的方式。每种方式都有其优缺点,他们能根据实际情形选择合适的方式。希望这篇文章能够对大家有所帮助。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务