利用webbrowser 模块打开URL
- web抓取:即利用程序下载并处理来自web的内容。
webbrowser: Python自带,打开浏览器获取指定页面import webbrowser # 打开百度浏览器 webbrowser.open('http://www.baidu.com')
requests:从因特网上下载文件和网页
beautiful Soup: 解析HTML,即网页编写的格式
selenium :启动并控制一个web浏览器,selenium能够填写表单,并模拟鼠标在这个浏览器中点击。 - sys.argv变量保存了程序的文件名和命令行参数的列表
import sys logging.info("sys = %s " % (sys.argv)) if len(sys.argv) > 1: address = ' '.join(sys.argv[1:]) logging.info("address: %s" % address) 输入: Python web_test.py http://www.baidu.com 返回结果是: 2018-11-11 22:07:31,652 - INFO - sys = ['web_test.py', 'http://www/baidu.com'] 2018-11-11 22:07:31,652 - INFO - address: http://www/baidu.com
-
import webbrowser # webbrowser.open('http://www.baidu.com') import logging logging.basicConfig(level=logging.INFO, format=' %(asctime)s - %(levelname)s - %(message)s') import sys, pyperclip logging.info("sys = %s " % (sys.argv)) if len(sys.argv) > 1: address = ' '.join(sys.argv[1:]) logging.info("address: %s" % address) else: address = pyperclip.paste() logging.info("address: %s" % address) webbrowser.open('https://baidu.com/' + address)
pyperclip.paste()从剪切板中获取内容(就是之前鼠标中复制到的内容),然后和open中的URL进行拼接。
用requests模块从web中下载文件
- 利用requests模块从web上下载东西(替代urllib2很难用)
当系统中安装有python2和python3版本的时候使用pip install requests报错,
解决办法:python2 -m pip install requests - requests.get()函数接受一个要下载的URL,返回一个Response对象:res
res.status_code 是返回的状态码
res.text是返回的字符串
res.raise_for_status()如果下载失败就会抛出异常;
res.iter_content()方法在循环中每次返回指定的字节数目
HTML
- html是一个纯文本文件,带有.html文件扩展名,这个文件中的文本被标签环绕<b>
- 利用浏览器的开发工具,弄清楚元素的id属性,是编写web抓取程序的常见任务。
BeautifulSoup模块接卸HTML
- import bs4即可,bs4.BeautifulSoup()函数调用时需要一个字符串(也可以是一个File对象),其中包含要解析的HTML,返回一个BeautifulSoup()对象。
select()方法:针对要寻找的元素,传入一个字符串作为“css选择器”,读取web页面的元素。返回一个Tag对象的列表,是Beautiful Soup表示一个HTML元素的方式;
在元素上调用getText()方法,返回该元素的文本(及时在开始和结束标签之间的内容),或者内部的HTML。
get(属性名称字符串)方法从元素中获取属性值;
selenium模块直接控制浏览器
- 可以使用该模块自动登录网站,填写表单,使用Firefox浏览器进行操作。