首页 > 代码库 > Python 爬虫—— requests BeautifulSoup

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-8from requests import session #__version__ = 2.3.0 这里直接使用session,因为要先登陆 from bs4 import BeautifulSoup #__version__ = 4.3.2s = 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 = http://www.mamicode.com/{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对象,可以看是否成功