一只从百度开始不断搜索的小爬虫

这是我第三天学python了, 想写一个东西纪念一下吧,于是写了一直爬虫,但是不是好的虫,只能讲网页的关键词存到本地, 但是我觉得基本上算是一只小虫了
文中用到了BeautifulSoup这个库, 目的是处理html文档分析的, 因为我只是提取了title的关键字,所以可以用正则表达式代替, 还有一个库是jieba, 这个库是中文分词的作用, 再有一个库是 chardet, 用来判断字符的编码, 本想多线程的, 但是自认为被搞糊涂了,就放弃了
?1. [代码][Python]代码 
#coding:utf-8
import re
import urllib
import urllib2
import sys
import time
import Queue 
import thread
import threading
import jieba
import chardet
from BeautifulSoup import BeautifulSoup as BS
 
 
DEEP = 1000
LOCK = threading.Lock()
PATH = "c:\\test\\"
urlQueue = Queue.Queue()
def pachong():
    url = ‘http://www.baidu.com‘
    return url
 
def getPageUrl(html):
    reUrl = re.compile(r‘<\s*[Aa]{1}\s+[^>]*?[Hh][Rr][Ee][Ff]\s*=\s*[\"\‘]?([^>\"\‘]+)[\"\‘]?.*?>‘)
    urls = reUrl.findall(html)
    for url in urls:
        if len(url) > 10:
            if url.find(‘javascript‘) == -1:
                urlQueue.put(url)
 
def getContents(url):
    try:
        url = urllib2.quote(url.split(‘#‘)[0].encode(‘utf-8‘), safe = "%/:=&?~#+!$,;‘@()*[]")
        req = urllib2.urlopen(url)
        res = req.read()
        code = chardet.detect(res)[‘encoding‘]
        #printhttp://www.huiyi8.com/donghua/?
        #print codeflash素材
        res = res.decode(str(code), ‘ignore‘)
        res = res.encode(‘gb2312‘, ‘ignore‘)
        code = chardet.detect(res)[‘encoding‘]
        #print code
        #print res
        return res
    except urllib2.HTTPError, e:
        print e.code
        return None
    except urllib2.URLError, e:
        print str(e)
        return None
     
def writeToFile(html, url):
    fp = file(PATH + str(time.time()) + ‘.html‘, ‘w‘)
    fp.write(html)
    fp.close()
     
     
def getKeyWords(html):
    code = chardet.detect(html)[‘encoding‘]
    if code == ‘ISO-8859-2‘:
        html.decode(‘gbk‘, ‘ignore‘).encode(‘gb2312‘, ‘ignore‘)
    code = chardet.detect(html)[‘encoding‘]
    soup = BS(html, fromEncoding="gb2312")
    titleTag = soup.title
    titleKeyWords = titleTag.contents[0]
    cutWords(titleKeyWords)
     
def cutWords(contents):
    print contents
    res = jieba.cut_for_search(contents)
    res = ‘\n‘.join(res)
    print res
    res = res.encode(‘gb2312‘)
    keyWords = file(PATH + ‘cutKeyWors.txt‘, ‘a‘)
    keyWords.write(res)
    keyWords.close()
     
def start():
     
    while urlQueue.empty() == False:
        url = urlQueue.get()
        html = getContents(url)
        getPageUrl(html)
        getKeyWords(html)
        #writeToFile(html, url)
 
         
if __name__ == ‘__main__‘:
    startUrl = pachong()
    urlQueue.put(startUrl)
    start()
     
    
?

时间: 2024-08-25 06:31:12

一只从百度开始不断搜索的小爬虫的相关文章

百度面试-网页搜索部

今天参加了百度的面试,面试过程安排过程中出了些问题,上午面试完成后竟然要等到下午4点安排接下来的面试,安排的不是很紧凑,最好让每个面试者的连续面试安排在一起,面试挺消耗精力了.不过周五赶上百度的summer party,在大厅等待的时候看到很多美女-_-!百度的前台妹纸们真是很漂亮嘛. 一面:面试官很清瘦,个头很高.后来发现人很nice,很随和~,至少面试过程中让人感觉很舒服.一些我回答出来的问题可能记忆的不是很清楚了,主要记录一些我答的不是很好的问题.首先自我介绍,不过刚刚开始就被打断开始进行

新站SEO通过百度站内搜索建立索引之我见

虽说现在360搜索的势头非常强劲,但是百度凭借着高居50%以上的市场份额依旧是国内各大中小站长SEO最为重视的搜索引擎.然后,随着市场格局的不断变化,百度对站长的态度也越趋于明朗化,从推出站长平台到站内搜索,都在进一步的示好广大站长. 当然,想成为一名合格的SEOer,首先你必须对各主流搜索引擎的站长平台中所提供的工具了然于胸.然后,你才有资格在大家面前谈所谓的SEO.今天,鄙人也站在一位新手站长的角度,谈谈工具之一的百度站内搜索对于新站的好处. 一个站点,如果连索引量都建立不起来,然后你来跟我

C#实现百度地图附近搜索&amp;调用JavaScript函数

前一篇文章"C#调用百度地图API入门&解决BMap未定义问题"讲述了如何通过C#调用百度API显示地图,并且如何解决BMap未定义的问题.这篇文章主要更加详细的介绍百度地图的一些功能,包括附近搜索.城市搜索.路线规划.添加覆盖物等等. 希望文章对你有所帮助!如果文章中有不足之处,还请海涵~ 百度官方文档:http://developer.baidu.com/map/jsmobile.htm 官方DEMO例:http://developer.baidu.com/map/jsde

百度举办移动搜索全国巡回沙龙,为移动互联网注入新活力

毋庸置疑.移动互联网已成为IT产业的下一个增长点,通过移动互联网掘金也成为创业者们广泛关注的问题.那么.在众多的移动互联网模式中.怎样才干最快的积累起用户和人气,并将其转化为真金白银呢? 近期,国内最大的搜索引擎百度举办了移动搜索全国巡回站长沙龙,以探索有关移动互联网商业模式的问题.据悉,在本次活动中,来自百度的移动搜索专家团队将遍行华北.华东.华南地区,与站长们面对面沟通,帮助站点在移动化风口起飞,带领他们在移动互联网时代创造更大的奇迹! 详细来说.百度移动搜索专家将携手百度站长平台.百度联盟

百度还懂搜索吗?

举例,以“如何查看mininet交换机中的流表”为搜索字符串,搜狗.Google.360搜索.百度的返回结果如下: 还能说什么呢??? 百度还懂搜索吗?,布布扣,bubuko.com

百度站内搜索应该注意哪些方面?

想过给自己网站添加一个站内搜索功能吗?几乎每个网站都会有站内搜索,因为他能够很好的提升用户体验,使用户快速的找到自己想要的内容!百度为站长们提供了一个站内搜索功能,而且使用它对网站的页面收录有一定的帮助!申请百度站内搜索很简单,按照他的步骤做就行!下面说说要注意的几点:     一.注意本地主机测试不能显示搜索结果页面 当你获取到代码并且把它写入网页后,如果你在本地测试的话你会发现不能显示搜索结果页面!因为百度站长平台验证的是你的网站,而且你新建搜索引擎填写的域名也是你网站的域名,这跟你本地主机

百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?

好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系方式地址等数据,这便成为很多人的便捷方式.但是一个个地复制出来商家的电话,地址是一件很痛苦的事情, 于是想到开发一个程序,模拟人的操作,将所有的数据提取保存到EXCEL里. 交流学习QQ:3125547039 主要代码思路: m_objConnection.Open();             b

百度HTTPS加密搜索有什么用?

前段时间,我曾提到百度支持移动端HTTPS SSL加密搜索,用以保护用户隐私.最近,百度开始支持PC端HTTPS SSL加密搜索,现在可以启用 https://www.baidu.com 搜索.我很少对百度有好感,但仍要实事求是地说:这是百度值得夸赞的一个举动. 不过,有墙外媒体说:百度启用加密搜索“意义不大”,某活动人士甚至说: “百度采用SSL搜索加密其实没有意义,几乎没有人有这样的需求,百度上也没有什么特别的信息——‘不良’或‘违法’的信息——可以搜索.” 这样的说法明显片面甚至带着有色眼

百度站内搜索

百度站内搜索是百度为站长们推出的又一款好用的搜索工具.可以绑定二级域名,并镶嵌广告增加收入 http://zn.baidu.com/ 百度站内搜索旨在帮助站长低成本地为网站用户提供高质量的网站内搜索服务.使用百度站内搜索工具,您可以轻松打造网站专属的搜索引擎,自定义个性化的展现样式.功能模块等,并通过搜索广告获得收入.