python爬虫基础

#! usr/bin/env python# -*- coding: utf-8 -*-

‘‘‘ post‘‘‘

import urllibimport urllib2url = ‘‘values = {‘user‘ : ‘v1‘, ‘password‘ : ‘v2‘}data = urllib.urlencode(values)

request = urllib2.Request(url, data)response = urllib2.urlopen(request)print response.read()

‘‘‘get‘‘‘import urlliburl = ‘http://passport.csdn.net/account/login‘values={}values[‘username‘] = "[email protected]"values[‘password‘]="XXXX"data = urllib.urlencode(values)url = url + ‘?‘ + dataprint url

‘‘‘headers‘‘‘import urllibimport urllib2url = ‘‘values = {}values[‘user‘] = ‘user1‘values[‘password‘] = ‘passwd‘data = urllib.urlencode(values)headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36‘}request = urllib2.Request(url,data,headers=headers)response = urllib2.urlopen(request)

‘‘‘Proxy代理的设置‘‘‘url = ‘‘proxy_handler = urllib2.ProxyHandler({‘http‘:‘127.0.0.1:8070‘})opener = urllib2.build_opener(proxy_handler)urllib2.install_opener(opener)request = urllib2.Request()

‘‘‘timeout 设置超时时间‘‘‘#方式1import socketsocket.setdefaulttimeout(10)

#方式2urllib2.socket.setdefaulttimeout(10)

‘‘‘URLerror网络无连接,即本机无法上网连接不到特定的服务器服务器不存在‘‘‘url = ‘‘values = {}data = urllib.urlencode(values)request = urllib2.Request(url, data)try:    response = urllib2.urlopen(request)except urllib2.URLError,e:    if hasattr(e,‘reason‘):        print e.reasonelse:     pass

‘‘‘Httperror100:继续  客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。101: 转换协议  在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。只有在切换新的协议更有好处的时候才应该采取类似措施。102:继续处理   由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。200:请求成功      处理方式:获得响应的内容,进行处理201:请求完成,结果是创建了新资源。新创建资源的URI可在响应的实体中得到    处理方式:爬虫中不会遇到202:请求被接受,但处理尚未完成    处理方式:阻塞等待204:服务器端已经实现了请求,但是没有返回新的信 息。如果客户是用户代理,则无须为此更新自身的文档视图。    处理方式:丢弃300:该状态码不被HTTP/1.0的应用程序直接使用, 只是作为3XX类型回应的默认解释。存在多个可用的被请求资源。    处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源    处理方式:重定向到分配的URL302:请求到的资源在一个不同的URL处临时保存     处理方式:重定向到临时的URL304:请求的资源未更新     处理方式:丢弃400:非法请求     处理方式:丢弃401:未授权     处理方式:丢弃403:禁止     处理方式:丢弃404:没有找到     处理方式:丢弃500:服务器内部错误  服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。501:服务器无法识别  服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。502:错误网关  作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。503:服务出错   由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。‘‘‘

url = ‘‘request = urllib2.Request(url)try:    response = urllib2.urlopen(request)except urllib2.HTTPError,e:    print e.code    print e.reasonfinally:    pass

‘‘‘Cookie‘‘‘

import urllib2import cookielib# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件cookie = cookielib.MozillaCookieJar(‘cookie.txt‘)# 利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器handler=urllib2.HTTPCookieProcessor(cookie)# 通过handler来构建openeropener = urllib2.build_opener(handler)# 此处的open方法同urllib2的urlopen方法,也可以传入requesturllib2.install_opener(opener)

values = {}values[‘user‘] = ‘user1‘values[‘password‘] = ‘passwd‘data = urllib.urlencode(values)headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36‘}request = urllib2.Request(url,data, headers=headers)try:    res = urllib2.urlopen(request)except urllib2.URLError,e:    if hasattr(e,‘reason‘):        print e.reasonexcept urllib2.HTTPError.E:    print E.code    print E.reasonelse:    pass

cookie.save(ignore_discard=True, ignore_expires=True)

# 进行到上一步以后 脚本的同一路径中有个cookie.txt,这样在就可以不需要登陆直接访问下一个网站了getUrl = ‘http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bkscjcx.curscopre‘request = urllib2.Request(getUrl)res = urllib2.urlopen(request)
时间: 2024-10-24 22:24:54

python爬虫基础的相关文章

python爬虫-基础入门-爬取整个网站《3》

python爬虫-基础入门-爬取整个网站<3> 描述: 前两章粗略的讲述了python2.python3爬取整个网站,这章节简单的记录一下python2.python3的区别 python2.x 使用类库: >> urllib 库 >> urllib2 库 python3.x 使用的类库: >> urllib 库 变化: -> 在python2.x中使用import urllib2 ----- 对应的,在python3.x 中会使用import url

Python 爬虫基础

下面是一个 Python 爬虫最简单的例子,使用网络库 urllib2 和正则表达式库 re,模拟浏览器的 User-Agent. #!/usr/bin/env python # -*- coding: utf-8 -*- #引入基础网络库 import urllib2 #引入正则表达式模块 import re #模拟User-Agent headers = {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWe

Python爬虫基础之requests

一.随时随地爬取一个网页下来 怎么爬取网页?对网站开发了解的都知道,浏览器访问Url向服务器发送请求,服务器响应浏览器请求并返回一堆HTML信息,其中包括html标签,css样式,js脚本等.我们之前用的是Python标准基础库Urllib实现的, 现在我们使用Python的Requests HTTP库写个脚本开始爬取网页.Requests的口号很响亮“让HTTP服务人类“,够霸气. 二.Python Requests库的基本使用 1.GET和POST请求方式 GET请求 1 import re

Python爬虫基础知识及前期准备

学习爬虫有一小段时间了,于是决定把自己学爬虫时所学的,写过的代码以及看过的文档记录下来,权当小结.第一次写这些,如果有错误,请多指教. 首先我们需要了解一下什么是爬虫. 根据百度百科上给出的定义," 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本."简单来说,爬虫类似手动下载网页信息,比如小说.歌曲.说到这,或许会有疑问,既然这样,干嘛还去敲代码,直接人工处理不好吗?话是这么说,但如果下载的

python爬虫基础02-urllib库

Python网络请求urllib和urllib3详解 urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urllib. 官方文档链接为:https://docs.python.org/3/library/urllib.html 而urllib3则是增加了连接池等功能,两者互相都有补充的部分. urllib 它是 Python 内置的 HTTP 请求库,也就是说我们不需要额外安装即可使用,基本上涵盖了基础的网络请

Python爬虫基础知识入门一

一.什么是爬虫,爬虫能做什么 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓取下来.比如它在抓取一个网页,在这个网中他发现了一条道路,其实就是指向网页的超链接,那么它就可以爬到另一张网上来获取数据. 爬虫可以抓取的某个网站或者某个应用的内容,提取有用的价值.也可以模拟用户在浏览器或者App应用上的操作,实现自动化的程序.以下行为都可以用爬虫实现: 咨询报告(咨询服务行业) 抢票神器 投票神器 预测(

python爬虫基础案例之糗事百科

关于爬虫也是刚接触,案例是基于python3做的, 依靠selenium的webdriver做的,所以python3必须有selenium这个包, 如果是基于谷歌浏览器的话需要下载谷歌浏览器的驱动,放在python的目录下,在此之前记得把环境变量安装好 直接上代码 原文地址:https://www.cnblogs.com/MsHibiscus/p/9073565.html

Python爬虫基础与技巧

基于Python2.7 1 基本抓取网页 get 方法 import urllib2url = "http://www.baidu.com"response = urllib2.urlopen(url)print response.read() post 方法 import urllibimport urllib2 url = "http://abcde.com"form = {'name':'abc','password':'1234'}form_data = u

Python爬虫基础教程,手把手教你爬取拉勾网!

一.思路分析: 在之前写拉勾网的爬虫的时候,总是得到下面这个结果(真是头疼),当你看到下面这个结果的时候,也就意味着被反爬了,因为一些网站会有相应的反爬虫措施,例如很多网站会检测某一段时间某个IP的访问次数,如果访问频率太快以至于看起来不像正常访客,它可能就会禁止这个IP的访问: 对于拉勾网,我们要找到职位信息的ajax接口倒是不难(如下图),问题是怎么不得到上面的结果. 要想我们的爬虫不被检测出来,我们可以使用代理IP,而网上有很多提供免费代理的网站,比如西刺代理.快代理.89免费代理等等,我