mongodb搭建校内搜索引擎——爬取网页文本

2024-02-26 14:59

本文主要是介绍mongodb搭建校内搜索引擎——爬取网页文本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目标:
读取excle文档中存储的url列表,爬取列表中网页的文本内容

概要:
在已经在获得爬虫获取的url列表的工作基础上,进行网页内容的获取。编程用到request(获取网页源码),BeautifulSoup(解析html,并且获取网页纯文本),lxml(解析html,在使用BeautifulSoup要预先安装),Xlrd(读取excle中内容)

我的思考:
一开始想用正则表达式来判断并且获的网页源码中的内容,但是发现自己的需求是获取所有纯文本的内容,刚开始接触爬虫时尝试过用,当你的需求是提取标题,或者特定单一的内容时,使用正则表示式还是可行的。考虑到我的要求是提取所有的文本内容,正则表达式就是比较局限,要考虑的情况较多,难免会有遗漏,所有去google有没有现有的python模块能干这种事。
果然,找到如下内容:

BeautifulSoup简介

在这里附上BeautifulSoup的中文文档使用链接:
BeautifulSoup4.2.0中文文档
在这里我只是使用了最为简单的方法实现,BeautifulSoup不仅实现了我的需求,而且远比我想象的还要强大。

代码:

#-*-coding:utf8-*-
from bs4 import BeautifulSoup
import requests
import re
import xlrd
import timedef get_text(url):headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36"}html=requests.get(url,headers = headers)#获取网页源码html_text=html.textsoup=BeautifulSoup(html_text,"lxml")#用BeautifulSoup获取网页内的纯文本fp_result=open("result.txt","a")result=soup.get_text# print (type(result))row_number=0fp_result.write(url)#打开文件结果以txt文件输出fp_result.write("\n------------------------------------------\n")for text in soup.stripped_strings:#soup.stripped_strings列表逐个输出fp_result.write(str(row_number)+":")fp_result.write(text.encode("utf-8"))#以utf-8编码输出fp_result.write("\n")row_number+=1fp_result.close()#关闭文件def get_xls(path):#打开已经通过爬虫获取的url列表,并且逐个读取urldata=xlrd.open_workbook(path)#打开excle文件table=data.sheets()[0]#打开工作表0nrows=table.nrows#获取行数finished_line=0for i in range(nrows):#逐个输出每行的内容ss=table.row_values(i)#获取列数for j in range(len(ss)):#逐个输出每列的内容finished_line+=1#记录完成进度try:get_text(ss[j])process=1.0*finished_line/nrowsprint "have finished %.3f" %process#记录完成进度print str(finished_line)except requests.exceptions.ConnectionError:#当出现requests.exceptions.ConnectionError时,将错误的链接记录到error.txt文件,错误原因有待进一步研究解决fp_error.write(ss[j]+"\n")print "target finished "+str(nrows)#记录总共的行数fp_error=open("error.txt","a")#打开记录错误的文件
fp_error.write(time.strftime('%Y-%m-%d',time.localtime(time.time())))#记录此次运行时间
fp_error.write("\n------------------------------------------\n")
get_xls("cs.xlsx")#调用函数,获取内容
fp_error.close()#关闭错误文件

这篇关于mongodb搭建校内搜索引擎——爬取网页文本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/wang_shen_tao/article/details/50636222
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/749240

相关文章

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或

Windows Server 2025 搭建NPS-Radius服务器的步骤

《WindowsServer2025搭建NPS-Radius服务器的步骤》本文主要介绍了通过微软的NPS角色实现一个Radius服务器,身份验证和证书使用微软ADCS、ADDS,具有一定的参考价... 目录简介示意图什么是 802.1X?核心作用802.1X的组成角色工作流程简述802.1X常见应用802.

基于MongoDB实现文件的分布式存储

《基于MongoDB实现文件的分布式存储》分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储,需要的朋友可以参考... 目录一、引言二、GridFS 原理剖析三、Spring Boot 集成 GridFS3.1 添加依赖

Spring Cloud GateWay搭建全过程

《SpringCloudGateWay搭建全过程》:本文主要介绍SpringCloudGateWay搭建全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Spring Cloud GateWay搭建1.搭建注册中心1.1添加依赖1.2 配置文件及启动类1.3 测

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr

Linux搭建单机MySQL8.0.26版本的操作方法

《Linux搭建单机MySQL8.0.26版本的操作方法》:本文主要介绍Linux搭建单机MySQL8.0.26版本的操作方法,本文通过图文并茂的形式给大家讲解的非常详细,感兴趣的朋友一起看看吧... 目录概述环境信息数据库服务安装步骤下载前置依赖服务下载方式一:进入官网下载,并上传到宿主机中,适合离线环境

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图