# -*- coding: utf-8 -*-
#from scrapy.spider import BaseSpider
from scrapy.contrib.spiders import CrawlSpider,Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.dupefilter import RFPDupeFilter
from scrapy.selector import HtmlXPathSelector
from searchEngine.items import SearchengineItem
class DmozSpider(CrawlSpider):
name = "dmoz"
allowed_domains = [
"news.cn",
"news.xinhuanet.com"
]
start_urls = [
"http://www.news.cn/",
"http://www.news.cn/mil/index.htm",
"http://www.news.cn/politics/"
"http://www.news.cn/world/index.htm",
"http://www.news.cn/tech/index.htm"
]
rules = (
#Rule(SgmlLinkExtractor(allow=('page/[0-9]+', ))),
#Rule(SgmlLinkExtractor(allow=['/' ]),'item_parse')
Rule(SgmlLinkExtractor(allow=('/', )),callback='item_parse'),
)
def item_parse(self,response,dont_filter=False):
#self.log("%s"%response.url)
item = SearchengineItem()
item['url'] = response.url
item['title'] = response.selector.xpath('//title/text()').extract()
item['keywords'] = response.selector.xpath('//meta[@name="keywords"]/@content').extract()
item['description'] = response.selector.xpath('//meta[@name="description"]/@content').extract()
for t in item['title']:
print t.encode('utf-8')
for t in item['keywords']:
print t.encode('utf-8')
for t in item['description']:
print t.encode('utf-8')
return item
#print item['title']
'''
def parse(self, response):
#hxs = HtmlXPathSelector(response)
#sites = hxs.select('//head')
#res = HtmlXPathSelector(response)
item = SearchengineItem()
#for site in sites:
# item = SearchengineItem()
# item['title'] = site.select('//title/text()').extract()
# item['link'] = site.select('meta/@keywords').extract()
#item['desc'] = site.select('text()').extract()
#items.append(item)
item['title'] = response.selector.xpath('//title/text()').extract()
item['keywords'] = response.selector.xpath('//meta[@name="keywords"]/@content').extract()
item['description'] = response.selector.xpath('//meta[@name="description"]/@content').extract()
for t in item['title']:
print t.encode('utf-8')
for t in item['keywords']:
print t.encode('utf-8')
for t in item['description']:
print t.encode('utf-8')
#print item['title']
return item
'''
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于vue前端框架/scrapy爬虫框架/结巴分词实现的小型搜索引擎 整体实现 大体流程如下: 1.爬虫爬取网页数据,保存在文件中, 2.python读取文件内容,存到数据库表中,使用结巴分词对网页内容进行分词,并获得TF-IDF值,构建倒排索引保存到数据库中。 3.前端界面接受用户输入,使用POST请求将数据发送到后端。 4.后端接受到数据进行分词,然后在倒排索引数据库查询,结果取并集,然后根据倒排索引数据库结果在结果数据库中查询,返回网页的具体信息。 5.前端收到返回后,将结果呈现出来。
资源推荐
资源详情
资源评论
收起资源包目录
tinySearchEngine-master.zip (46个子文件)
tinySearchEngine-master
DomzSpider.py 2KB
image
img3.png 142KB
img4.png 130KB
img2.png 13KB
img1.png 5KB
src
App.vue 440B
assets
logo.png 7KB
main.js 498B
components
searchResult.vue 5KB
searchEngine.vue 1KB
router
index.js 406B
dist
index.html 450B
static
js
vendor.080f64fd4ca0f1bcf027.js.map 1.07MB
vendor.080f64fd4ca0f1bcf027.js 142KB
manifest.42e3257fe0dc6f03a838.js 1KB
app.2e2f3fd3b6a1a7409115.js 5KB
manifest.42e3257fe0dc6f03a838.js.map 14KB
app.2e2f3fd3b6a1a7409115.js.map 39KB
css
app.bc6bcebd8dff1469ed2a180d243d1fb1.css 2KB
app.bc6bcebd8dff1469ed2a180d243d1fb1.css.map 4KB
package.json 3KB
back_end.php 3KB
build
check-versions.js 1KB
dev-server.js 2KB
utils.js 2KB
vue-loader.conf.js 307B
webpack.prod.conf.js 4KB
build.js 953B
dev-client.js 245B
webpack.base.conf.js 1KB
webpack.dev.conf.js 1KB
webpack.test.conf.js 584B
index.html 201B
test
e2e
specs
test.js 561B
nightwatch.conf.js 1KB
runner.js 1KB
custom-assertions
elementCount.js 777B
unit
specs
Hello.spec.js 335B
karma.conf.js 992B
index.js 487B
jsonToMySQL.py 920B
urlToKeywords.py 1KB
config
test.env.js 132B
prod.env.js 48B
index.js 1KB
dev.env.js 139B
共 46 条
- 1
资源评论
博士僧小星
- 粉丝: 2262
- 资源: 5991
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功