原副标题: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 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种化解拟钩截取镜像不完备的方式。每种方式都有其优缺点,他们能根据实际情形选择合适的方式。希望这篇文章能够对大家有所帮助。