java爬虫抓取网页数据(爬虫入门程序urllib2实现下载网页的三种方式:入门 )

优采云 发布时间: 2022-04-04 02:10

  java爬虫抓取网页数据(爬虫入门程序urllib2实现下载网页的三种方式:入门

)

  爬虫入口程序

  urllib2实现了三种下载网页的方式:

  第一个:

  import cookielib

import urllib2

url = "http://www.baidu.com"

response1 = urllib2.urlopen(url)

print "第一种方法"

#获取状态码,200表示成功

print response1.getcode()

#获取网页内容的长度

print len(response1.read())

  第二:

  request = urllib2.Request(url)

#模拟Mozilla浏览器进行爬虫

request.add_header("user-agent","Mozilla/5.0")

response2 = urllib2.urlopen(request)

print response2.getcode()

print len(response2.read())

  第三:

  cookie = cookielib.CookieJar()

#加入urllib2处理cookie的能力

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

urllib2.install_opener(opener)

response3 = urllib2.urlopen(url)

print response3.getcode()

print len(response3.read())

print cookie

  爬虫添加数据、标头,然后发布请求

  import urllib

import urllib2

url = 'http://www.server.com/login'

user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'

values = {'username' : 'cqc', 'password' : 'XXXX' }

headers = { 'User-Agent' : user_agent }

data = urllib.urlencode(values)

request = urllib2.Request(url, data, headers)

response = urllib2.urlopen(request)

page = response.read()

  爬虫添加 cookie

  为什么要添加 cookie?

  Cookie,是指存储在用户本地终端上的一些网站数据(通常是加密的),用于识别用户身份和进行会话跟踪。比如有些网站需要登录才能访问某个页面,在登录之前,你想抓取一个页面内容是不允许的。然后我们就可以使用Urllib2库来保存我们登录的cookies,然后爬取其他页面来达到目的

  获取 cookie 并将其保存到变量中

  首先我们用CookieJar对象来实现获取cookies的功能,存储在变量中,先体验一下

  import urllib2

import cookielib

#声明一个CookieJar对象实例来保存cookie

cookie = cookielib.CookieJar()

#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器

handler=urllib2.HTTPCookieProcessor(cookie)

#通过handler来构建opener

opener = urllib2.build_opener(handler)

#此处的open方法同urllib2的urlopen方法,也可以传入request

response = opener.open('http://www.baidu.com')

for item in cookie:

print 'Name = '+item.name

print 'Value = '+item.value

  我们用上面的方法将cookie保存到一个变量中,然后打印出cookie中的值,结果如下

  Name = BAIDUID

Value = B07B663B645729F11F659C02AAE65B4C:FG=1

Name = BAIDUPSID

Value = B07B663B645729F11F659C02AAE65B4C

Name = H_PS_PSSID

Value = 12527_11076_1438_10633

Name = BDSVRTM

Value = 0

Name = BD_HOME

Value = 0

  将 cookie 保存到文件

  在上述方法中,我们将cookie保存到cookie变量中。如果我们想将 cookie 保存到文件中怎么办?这时候,我们将使用 FileCookieJar 对象,这里我们使用它的子类 MozillaCookieJar 来保存 cookie

  mport cookielib

import urllib2

#设置保存cookie的文件,同级目录下的cookie.txt

filename = 'cookie.txt'

#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件

cookie = cookielib.MozillaCookieJar(filename)

#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器

handler = urllib2.HTTPCookieProcessor(cookie)

#通过handler来构建opener

opener = urllib2.build_opener(handler)

#创建一个请求,原理同urllib2的urlopen

response = opener.open("http://www.baidu.com")

#保存cookie到文件

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

  正则表达式的正则表达式语法规则

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线