文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

bs4--mechanize模拟浏览器

2023-01-30 22:06

关注

Mechanize模块,只支持python2,而我的环境是python3

使用pycharm创建虚拟环境,使用py2.7

如果非要使用py3,可以使用mechanicalsoup模块(网上大概看了下,都说不好用,这里不多介绍)

blob.png


Mechanize安装

这里使用pycharm安装,点击Settings配置文件,找到Project Interpreter

blob.png


点击后边的+号,如图

blob.png


搜索mechanize包

blob.png


点击Install Package安装

blob.png


安装成功后,可看见mechanize包版本信息

blob.png


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)

运行结果

blob.png

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯