发布时间:2018-07-09 11:29:46编辑:Run阅读(6059)
Mechanize模块,只支持python2,而我的环境是python3
使用pycharm创建虚拟环境,使用py2.7
如果非要使用py3,可以使用mechanicalsoup模块(网上大概看了下,都说不好用,这里不多介绍)
Mechanize安装
这里使用pycharm安装,点击Settings配置文件,找到Project Interpreter
点击后边的+号,如图
搜索mechanize包
点击Install Package安装
安装成功后,可看见mechanize包版本信息
Mechanize常用函数
.CookieJar():设置cookie
.Browser():打开浏览器
.addheaders():User-Agent,用来欺骗服务器的
.open():打开网页,按照官网描述可以打开任意网页,不仅限于http
.select_form():选择表单的,选择表单的ID的时候需要注意。
.form[]:填写信息
.submit():提交
Mechanize测试
百闻不如一见,说得再多也不如直接测试一次
下面演示如何使用Mechanize模拟浏览器,搜索关键字
创建一个my_mechanize.py文件
import mechanize import sys from bs4 import BeautifulSoup # py2.7声明使用utf-8编码 reload(sys) sys.setdefaultencoding('utf-8') # 打开浏览器 br = mechanize.Browser() # 设置浏览器 br.set_handle_equiv(True) br.set_handle_redirect(True) br.set_handle_referer(True) br.set_handle_robots(False) br.set_handle_gzip(False) # Follows refresh 0 but not hangs on refresh > 0 br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) # 添加请求头 br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] # 上面的代码主要用于初始化设置 # 打开百度 br.open('https://www.baidu.com') # 获取百度的表单 for form in br.forms(): print(form) # 搜索关键字 br.select_form(name='f') br.form['wd'] = 'www.py3study.com' br.submit() # 查看搜索结果 print(br.response().read()) # 查看返回页面的所有链接 for link in br.links(): print("%s : %s" % (link.url, link.text)) # 使用mechanize浏览器打开指定链接,执行命令 newlink = br.click_link(text='python3学习') new_content = br.open(newlink) html = new_content.read() # 使用bs4过滤器 soup = BeautifulSoup(html, 'lxml') # 获取所有标题,返回一个列表 tagsli = soup.find_all('div', attrs={'class': 'desc'}) for i in tagsli: print(i)
运行结果
上一篇: bs4--xlwt存入excel
下一篇: bs4+mechanize模拟登陆
47604
45981
36909
34467
29079
25713
24565
19714
19245
17756
5564°
6155°
5690°
5737°
6703°
5482°
5484°
5988°
5965°
7295°