码迷,mamicode.com
首页 > 其他好文 > 详细

关于爬虫Demo的一点补充

时间:2015-04-29 23:34:54      阅读:330      评论:0      收藏:0      [点我收藏+]

标签:python   爬虫补充   

上一篇简单的Demo确实实现了一些爬虫的功能。但是距真正的搜索引擎爬虫确实想去甚远。
1.首先下载URL时,大多是维护一个DNS服务器,找到相应的IP在进行下载网页。
2.维护URL队列时,上篇程序属于纵向的深度遍历,所以维护队列会越来越大,这算是比较大的bug了。解决方法起线程,或者每个页面只抓取一个URL。
3,关于URL抓取和种子URL写的也比较简陋,好吧,原谅他只是个Demo。

urllib2的库非常强大加入Header或者模仿cookies设置proxy等等。。。

先来说说urlopen()这个函数:

urllib2.urlopen(url[, data[, timeout[, cafile[, capath[, cadefault[, context]]]]])

Open the URL url, which can be either a string or a Request object.data may be a string specifying additional data to send to the server, or None if no such data is needed. Currently HTTP requests are the only ones that use data;

urlopen的返回值是个类文件对象,我们可以用read( ), info( ), getcode( ), geturl( )。

# -*- coding: utf-8 -*-
import urllib2

page = urllib2.urlopen("http://www.chinaz.com/")    #函数返回类文件对象
html = page.read()  #可以使用read(),readline(), readlines()对文件进行读取
page.close()
print html    #输出文件对象的内容
print page.info()   #输出头部信息
print page.getcode()    #输出错误码
print page.geturl()    #输出请求的URL

模拟User-Agent:

user_agent = ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)‘
headers = {‘User-Agent‘: user_agent}
req = urllib2.Request(myUrl, headers=headers)
myResponse = urllib2.urlopen(req)

关于爬虫Demo的一点补充

标签:python   爬虫补充   

原文地址:http://blog.csdn.net/crbrave/article/details/45371307

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!