python3_mechanicalsoup

# !/usr/bin/python3.4
# -*- coding: utf-8 -*- import mechanicalsoup # 事实证明,这个库非常的不友好
# 非常!!
# 和mechanize没法比
# https://github.com/hickford/MechanicalSoup def openbrowser(url): # 定义browser
browser = mechanicalsoup.Browser() # 头部
browser.addheaders = [('User-Agent',
'Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5'),
('Referer', 'http://www.baidu.com'),
('Host', 'www.baidu.com')]
# 打开百度
result = browser.get(url)
# 定位搜索表格
search = result.soup.select("#form")[0]
print(search)
# 搜索框填入ttyb
search.select("#kw")[0]['value'] = "TTyb"
# 点击百度一下
page2 = browser.submit(search, result.url) # ('UTF-8')('unicode_escape')('gbk','ignore')
html = page2.content.decode("UTF-8", "ignore") return html if __name__ == '__main__':
url = "http://www.baidu.com"
html = openbrowser(url)
print(html)

python3_mechanicalsoup的更多相关文章

随机推荐

  1. [Java Basics] Stack, Heap, Constructor, I/O, Immutable, ClassLoader

    Good about Java: friendly syntax, memory management[GC can collect unreferenced memory resources], o ...

  2. 测试题1 IOS面试基础题

    免责声明:答案来自本人,错误之处敬请谅解 1.用变量a写出以下定义 a.一个整型数    int a=5; b.一个指向整型数的指针  int *a; c.一个指向指针的指针,它指向的指针是指向一个整 ...

  3. NSArray,NSSet,NSDictionary的遍历,基本使用集锦

    NSArray *array = [NSArray arrayWithObjects:@"zhangsan",@"lisi",@"wangwu&quo ...

  4. javascript:;与javascript:void(0)使用介绍

    有时候我们在编写js过程中,需要触发事件而不需要返回值,那么就可能需要这样的写法 href=”#”,包含了一个位置信息.默认的锚是#top,也就是网页的上端,当连续快速点击此链接时会导致浏览器巨慢甚至 ...

  5. magento问题集3

    MISSING LANGUAGE FILES OR DIRECTORIES A:已经装了俄语包,也是russian目录,在前台也可以用.但是在后台最上面总是显示MISSING LANGUAGE FIL ...

  6. web.config的数据库连接字符串进行加密

    连接参考:http://wenku.baidu.com/link?url=nwGug8wxz143A4pvBE_kN6vMU7aF3ojwCKJOyN-TQleZ07iAYrjx_FnFVDOtZAF ...

  7. 设置viewport进行缩放

    <meta name="viewport" content="width=320,maximum-scale=1.3,user-scalable=no"& ...

  8. win7录屏工具

    psr.exe http://jingyan.baidu.com/article/aa6a2c14d330710d4d19c47c.html

  9. JS基础知识(-)

    1 , call方法: 语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 定义:调用一个对象的一个方法,以另一个对象替换当前对象. 说明: call 方法 ...

  10. The Hidden Pitfalls of AsyncTask

    http://logc.at/2011/11/08/the-hidden-pitfalls-of-asynctask/