Python 使用webbrowser.open()打开网站,sys.argv及join()用法介绍

在编程界,操作网页互动、完成文件传输、分析HTML数据等技能颇为实用,但它们背后隐藏着众多技巧和挑战,以下我将逐一详细阐述。

>>> import webbrowser 
>>> webbrowser.open('http://i.firefoxchina.cn/?from=worldindex') 
True 

利用.open()打开网站

使用脚本启动网页是一项十分实用的能力。通常,程序的开始行需要用井号加感叹号(#!)标识,即便缺少这一行代码,程序依然能够运行,但这样做只是遵循了一种标准。我们可以通过sys.argv来获取命令行上的参数,比如,我们可以利用这些参数开启一个文件编辑器的新窗口,输入代码,并将其保存为名为map.py的文件。此外,我们能够获取剪贴板信息,接着通过执行.open()函数启动一个网页浏览器。比如,先选中“天安门广场”内容进行复制,再运行程序,就能成功打开对应的网页。

用模块从 Web 下载文件

#! python3 
import webbrowser, sys, pyperclip 
if len(sys.argv) > 1: 
 mapAddress = ''.join(sys.argv[1:]) 
else: 
 mapAddress = pyperclip.paste() 
webbrowser.open('http://map.baidu.com/?newmap=1&ie=utf-8&s=s%26wd%3D' + mapAddress 

某些功能模块不是系统自带的,借助命令行来执行pip的安装操作。但若无法突破网络封锁,安装过程会变得极其不易。若决定手动安装,可以查阅相关资料来获取安装指导。在下载文件时,采用一些特定策略,比如使用验证方法来确保数据没有损坏,这样程序才能顺利完成后续步骤。

将下载文件保存到本地

文件下载成功之后,应当将其保存在个人电脑中。这就需要我们编写相应的代码来设定存放的路径和文件的命名。依据不同的需求,我们可以选择适当的存储方式,从而保证文件在本地硬盘上能够被安全并且完整地保留。

>>> import requests 
>>> res = requests.get('http://i.firefoxchina.cn/?from=worldindex') #向get中传入一个网址 
>>> type(res) #响应对象 
 
>>> print(res.status_code) #响应码 
200 
>>> res.text #返回的文本 

用模块解析 HTML

在命令行界面中,我们使用pip工具来安装解析HTML内容的插件。在这些插件中,bs4模块具备独特的能力,能够解析网页中的链接,例如通过get()方法实现。此外,它还能处理存储在本地的HTML文档,只需通过open()函数直接打开本地页面即可。需要注意的是,偶尔会出现错误提示,遇到这种情况,就要加入第二个参数来加以解决。

import requests 
res = requests.get('http://i.firefoxchina.cn/?from=worldindex') 
try: 
 res.raise_for_status() 
except Exception as exc: 
 print('There was a problem: %s' % (exc)) 

寻找 HTML 元素

在查找网页元素时,我们需借助特定方法,并输入字符串来充当CSS选择器。比如,通过soup.(‘div’)指令,我们能筛选出所有标签名为div的元素;若要选取带有特定id属性的元素,则可以使用soup.(‘#’);而soup.(‘.’)则用于选择CSS类属性值符合特定条件的元素。这些技巧能让我们更精确地定位到网页中的目标信息。

>>> import requests 
>>> res = requests.get('http://tech.firefox.sina.com/17/0820/10/6DKQALVRW5JHGE1I.html##0-tsina-1-13074-397232819ff9a47a7b7e80a40613cfe1') 

图片[1]-Python 使用webbrowser.open()打开网站,sys.argv及join()用法介绍-东山笔记

>>> res.raise_for_status() >>> file = open('1.txt', 'wb') #以写二进制模式打开文件,目的是保存文本中的“Unicode编码” >>> for word in res.iter_content(100000): #iter_content()方法在循环的每次迭代中返回一段bytes数据类型的内容,你需要指定其包含的字数 file.write(word) 16997 >>> file.close()

解析 HTML 的实际应用

在现实开发中,解析HTML技术被广泛运用,它能够帮助开发者制作网页爬虫,进而抓取网页中的有用信息。通过定位特定元素,我们能精准地获取所需数据,并对其进行后续的处理和分析。这种技术在数据挖掘和信息搜集等多个重要领域都得到了广泛的采纳和应用。

>>> import requests, bs4 
>>> res = requests.get('http://i.firefoxchina.cn/?from=worldindex') 
>>> res.raise_for_status() 
>>> soup = bs4.BeautifulSoup(res.text) 
 
Warning (from warnings module): 
 File "C:UsersKingAppDataLocalProgramsPythonPython36-32libsite-packagesbeautifulsoup4-4.6.0-py3.6.eggbs4__init__.py", line 181 
 markup_type=markup_type)) 
UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("html.parser"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently. 
 
The code that caused this warning is on line 1 of the file . To get rid of this warning, change code that looks like this: 
 
 BeautifulSoup(YOUR_MARKUP}) 
 
to this: 
 
 BeautifulSoup(YOUR_MARKUP, "html.parser") 
 
>>> soup = bs4.BeautifulSoup(res.text, 'html.parser') 
>>> type(soup) 
 

在编程领域,我遭遇了不少难题,例如应对网页的交互操作和解析HTML文档。若对此感兴趣,您可以点赞、分享,并在评论区留下您的想法,让我们讨论和分享经验。

>>> import bs4 
>>> html = open('C:\Users\King\Desktop\1.htm') 
>>> exampleSoup = bs4.BeautifulSoup(html) 
>>> exampleSoup = bs4.BeautifulSoup(html, 'html.parser') 
>>> type(exampleSoup) 
 

© 版权声明
THE END
喜欢就支持一下吧
分享