赞
踩
目录
webrowser是python自带的模块,该模块的open()函数可以启动一个浏览器,打开指定的URL网址
- import webbrowser
- webbrowser.open('https://www.csdn.net/')
sys模块用于读入可能的命令行参数,sys.argv变量保存了程序文件名和命令行参数的列表
如果没有参数,可以将要访问的地址保存到剪贴板,然后通过pypeclip.paste()获取地址赋值给URL
- import pyperclip
- import webbrowser
- dress=pyperclip.paste() #读取剪贴板内容
- webbrowser.open(dress)
requests模块可以从web下载想要的内容,但要调用这个模块要先pip install requests安装
requeste模块的get()函数可以接受一个要下载的URL字符串,requests对象的status_code属性可以检查对这个页面的请求是否成功,如果该值等于requests.code.ok表示请求成功
- import requests
- res=requests.get('https://www.csdn.net/')
- if res.status_code==requests.codes.ok:
- len_end=len(res.text)
- print(res.text[:len_end])
- else:
- print('请求错误!')
请求csdn页面,如果请求成功就下载页面代码
requests属性的status_code属性可以检查页面请求是否正确,还有一个更简单的方法,就是在requests对象上调用raise_for_status()方法
所以如上的代码可以表示为:
- import requests
- res=requests.get('https://www.csdn.net/')
- try:
- res.raise_for_status()
- except Exception:
- print('请求错误!')
向open()函数第二个参数传入‘wb’表示用二进制形状打开文件,然后才可以用write()方法写入磁盘
iter_conten()方法在循环的每次迭代中返回一段内容
- import requests
- res=requests.get('https://www.csdn.net/')
- file=open('C://Users//myun//Desktop//python.txt','wb')
- for chunk in res.iter_content():
- file.write(chunk) #每一次迭代写入一段内容
- file.close()
如果想复习HTML知识可以:html复习
BeautifulSoup模块用于从HTML页面提取信息,它的名称是bs4,表示BeautifulSoup第四版,通过pip install BeautifulSoup4安装,但导入时使用import bs4
bs4.BeautifulSoup()函数的调用要传入一个字符串,其中包含要解析的HTML文件
- import requests
- import bs4
- res=requests.get('https://www.csdn.net/')
- res.raise_for_status()
- htmltext=open('C://Users//myun//Desktop//soup.html')
- Soup_text=bs4.BeautifulSoup(htmltext) #创建Beautiful文件
下载一个html文件,然后传递给soup.html文件中
select选择大部分css样式:
传递给select()方法的选择器 | 将匹配 |
soup.select('div') | 所有名为<div>的元素 |
soup.select('#author') | 带有id属性为author的元素 |
soup.select('.notice') | 所有CSS class属性名为notice的元素 |
soup.select('div span') | 所有在<div>元素之内的<span>元素 |
soup.select('div > span') | 所有直接在<div>元素内的<span>元素,中间没有其他元素 |
soup.select('input[name]') | 所有名为<input>,并有一个name属性,其值=无所谓的元素 |
soup.select('input[type="button"]') | 所有名为<input>,并有一个type属性,其值为buttond的元素 |
select()方法每一次匹配将返回一个Tag对象的列表,Tag值可以传递给str()函数,显示它代表的HTML标签,也可以有attrs属性将Tag使用html属性作为一个字典
- import requests
- import bs4
- souphtml=requests.get('https://www.csdn.net/')
- Soup_text=bs4.BeautifulSoup(souphtml.text)
- elems=Soup_text.select('.headswiper-item')
- print(len(elems))
- print(str(elems[1])) #显示它代表的html标签
- print(elems[0].attrs)
Tag对象的get()方法可以获取元素的属性
- mport requests
- import bs4
- souphtml=requests.get('https://www.csdn.net/')
- Soup_text=bs4.BeautifulSoup(souphtml.text)
- elems=Soup_text.select('div')[0]
- print(str(elems))
- print(elems.get('id'))
- print(elems.attrs)
- '''<div id="toolbarBox" style="min-height: 48px;"></div>
- toolbarBox
- {'id': 'toolbarBox', 'style': 'min-height: 48px;'}'''
-
例如:选择第一个div元素,将属性名为id’打印出来
selenium模块让python直接控制浏览器
导入selenium模块为from selenium import webdriver,然后通过webdriver控制浏览器
例如:控制edge浏览器打开csdn
- from selenium import webdriver
- browser=webdriver.Edge()
- browser.get('https://www.csdn.net/')
webdriver对象中有两大类方法来寻找页面元素,find_element_*方法返回一个WebElement对象,find_elements_*方法返回WebElement_*对象的列表,包含所有页面中匹配的元素
find_elememt_*和find_elements_*方法在变量browser中保存的WebDriver对象上调用
方法名 | 返回的WebElement对象/列表 |
browser.find_element_by_class_name(name) | |
browser.find_elements_by_class_name(name) | 使用CSS类name的元素 |
browser.find_element_by_css_selector(selector) | |
browser.find_elements_by_css_selector(selector) | 匹配CSS selector的元素 |
browser.find_element_by_id(id) | |
browser.find_elements_by_id(id) | 匹配id属性的元素 |
browser.find_element_by_link_text(text) | |
browser.find_elements_by_link_text(text) | 匹配提供的text的<a>元素 |
browser.find_element_by_partial_link_text(text) | |
browser.find_elements_by_partial_link_text(text) | 包含提供的text的<a>元素 |
browser.find_element_by_name(name) | |
browser.find_elements_by_name(name) | 匹配name属性值的元素 |
browser.find_element_by_tag_name(name) | |
browser.find_elements_by_tag_name(name) | 匹配标签name的元素 |
有了WebElement对象,就可以读取其中的属性,或调用其中的方法
属性或方法 | 描述 |
tag_name | 标签名 |
get_attribute(name) | 该元素name属性的值 |
text | 该元素的文本 |
clear() | 对于文本字段或文本区域元素,清除其输入的内容 |
is_displayde() | 如果该元素可见返回true,否则返回false |
is_enabled() | 对于输入的元素,如果该元素启用返回true,否则返回false |
is_selected() | 对于复选框或单选框,如果该元素被选中返回true,否则返回false |
location | 一个字典,包含‘x’和‘y’,表示元素在页面上的坐标 |
find_elements_*和find_element_*返回的WebElement对象有一个click()方法,可以模拟鼠标的点击操作,实现链接跳转,点击按钮的功能
利用以下方法可以模拟点击浏览器按钮:
browser.back()点击“返回”按钮
browser.forward()点击“前进”按钮
browser.refresh()点击“刷新”按钮
browser.quit()点击“关闭窗口”按钮
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。