网络爬虫第一篇:网络爬虫基础和Requests库

2017/07/06 网络爬虫

网络爬虫第一篇:网络爬虫基础和Requests库


关于网络爬虫基础

一直都想好好研究,可惜时间利用不好(懒癌患者….) 岁数大了记性不好,还是写个笔记免得都忘了,水平有限,诸位见谅

网络爬虫(web crawber)又叫网络蜘蛛,即采集web上的信息。 常见的爬虫主要使用如下技术:

python3:基础语言库

Requests库:html请求处理库

BeautifulSoup库简称bs4:html解析库

lxml库:更强的html解析库

re库:正则表达式库

Scrapy库:霸气的爬虫框架库

关于python版本

现代技术更新快,为了避免头疼的utf-8,建议还是用py3吧,目前到3.5版本了。 而且Scrapy也支持了还有啥好担心的呢

关于Requests库

下面开始重点记录下这个包的功能

这个包类似于python标准库urllib2,用于网站请求处理 功能强大,使用简便

分享:Requests中文文档

1. 首先说下WEB请求方式

get方式:一般方式,无需登录的网站使用 Post方法:表单方式,需要登录的网站使用

2. Get或Post的使用方法

首次查看登录页面form的action属性,确定Get或Post的网址

例如:主页为http://X.X.X.X/

<form name="LoginForm"
	  method="POST"
      action="/ODWEKWeb/ODLogon"
      onsubmit="return docheckform()"
>

Post网址为http://X.X.X.X/ODWEKWeb/ODLogon

其次查看input的name属性,确定ID和密码的变量名称

例如:

<input type="text"
	   name="_user"
	   value=""
>
<input type="password"
	   name="_password"
	   value="">

ID的变量名为_user 密码的变量名_password

最简单方法:使用浏览器F12开发者模式查看

1、打开浏览器,进入登录界面后,按F12,选择Network进行监控,然后输入ID和密码,点击登录按钮,监控收发包。

2、可查信息如下:

123

123

123

123

普通网页登录

需登记网站涉及cookies,建议多使用session对象,避免一系统麻烦

例如:

#1、导入包

import requests
from requests import session
session = session()
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'}

#2、带cookies参数

params = {'_user':'02818wd','_password':'pass2012'}
r = requests.post('http://X.X.X.X/ODWEKWeb/ODLogon',data = params,headers = headers)
r = requests.get('http://X.X.X.X/ODWEKWeb/modifypassword.jsp',cookies = r.cookies,headers = headers)
print(r.text)#输出内容

#3、自动追踪cookies,无需带cooki参数

params = {'_user':'02818wd','_password':'pass2012'}
s = session.post('http://X.X.X.X/ODWEKWeb/ODLogon',data = params,headers = headers)
s = session.get('http://X.X.X.X/ODWEKWeb/modifypassword.jsp',headers = headers)
print(s.text)
params = {'folderName':'VIEW_DGMSRPT','type':'true'}
s = session.post('http://X.X.X.X/ODWEKWeb/ODGetCriteria',data = params,headers = headers)
print(s.text)

登录HTTP认证网页

在登录HTTP认证网页时,可使用auth模块

导入auth

import requests
from requests.auth import AuthBase
from requests.auth import HTTPBasicAuth
auth = HTTPBasicAuth('ID','PASSWORD')
r = requests.post('http://X.X.X.X/ODWEKWeb/ODLogon',auth = auth)
print(r.text)

3. 解释器准备数据

在使用bs4,或lxml等解释器前,准备好数据,注意编码方式

例如:

#抓取并保存页面信息
r=requests.get('http://X.X.X.X/',headers=headers)
html=r.content
#对抓取的页面进行编码
html=str(html, encoding = "GBK")

本篇记录了爬虫基础知识,以及Requests库使用,接下来将开始网页解释器学习

文章及图片归 神烦DMer所有。欢迎转载,请注明转自“神烦DMer博客”

Show Disqus Comments

Search

    欢迎关注我的微信公众号

    闷骚的程序员

    Table of Contents