zoukankan      html  css  js  c++  java
  • Python 爬虫—— requests BeautifulSoup

    本文记录下用来爬虫主要使用的两个库。第一个是requests,用这个库能很方便的下载网页,不用标准库里面各种urllib;第二个BeautifulSoup用来解析网页,不然自己用正则的话很烦。

    requests使用,1直接使用库内提供的get、post等函数,在比简单的情况下使用,2利用session,session能保存cookiees信息,方便的自定义request header,可以进行登陆操作。

    BeautifulSoup使用,先将requests得到的html生成BeautifulSoup对象,然后进行解析,可以用select进行css选择器操作,然后用get、getText等获取信息。

    下面是一个登录博客园发布闪存的例子

    #! python
    # coding=UTF-8
    
    from requests import session #__version__ = 2.3.0 这里直接使用session,因为要先登陆 
    from bs4 import BeautifulSoup #__version__ = 4.3.2
    
    
    s = session() #创建一个session对象
    r = s.get('http://passport.cnblogs.com/login.aspx') #该页面进行登录,先获取一些信息
    bs = BeautifulSoup(r.text) #解析获取的网页
    __VIEWSTATE = bs.select('#__VIEWSTATE')[0].get('value') #
    __EVENTVALIDATION = bs.select('#__EVENTVALIDATION')[0].get('value') #
    
    
    # post登陆时的信息,把用户名和密码改成自己的
    data = {'tbUserName':'*', 'tbPassword':'*',
    'chkRemember':'on', 'txtReturnUrl':'http://i.cnblogs.com',
    '__VIEWSTATE':__VIEWSTATE, '__EVENTVALIDATION':__EVENTVALIDATION,
    'btnLogin':u'登录', 
    }
    s.post('http://passport.cnblogs.com/login.aspx', data) #登录
    
    messages = ['hello world', 'hello cnblogs']
    
    for message in messages:
        data = {'content':message, 'publicFlag': '1'}
        r = s.post('http://home.cnblogs.com/ajax/ing/Publish', data) # 发送闪存
        print r.json() #返回一个json对象,可以看是否成功
  • 相关阅读:
    结构-行为-样式-有趣的函数
    结构-行为-样式-angularJs笔记
    Js-Html 前端系列--页面撑开头尾
    Java 实现下载
    Js-Html 前端系列--Ajax
    Js-Html 前端系列--checkbox
    Nutz中过滤特殊字符
    NUTZ中处理系统未捕获异常
    Thymeleaf 笔记
    Json 使用小结
  • 原文地址:https://www.cnblogs.com/wbin91/p/3833725.html
Copyright © 2011-2022 走看看