爬取网页内所有的url和meta标签,title标签

2024-05-26 15:08

本文主要是介绍爬取网页内所有的url和meta标签,title标签,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个东西实际是最基础的东西,但是也是遇到了很多的坑,在这里记录如下。
此时我手里有了各种网页,从网上用wget工具下载的各种网页源码文件,大多是html文件,有的是php等等,都能使用html的格式打开。
为了的提出网页里面的所有信息建立图表,为以后的数据挖掘做准备。明白目的之后,首先是相对于其他爬虫有点不同的是有了网页源码。省去了下载的环节

第一步 使用python将网页的源码打开

这里面我使用了一个很好用的库,beautifulsoup工具,此工具的下载和安装,网上有很多教程,基于bs4,另外我发现在pycharm中你点取改正之后的import也可以直接下载这些包,免去在cmd里面pip install。

还有一个问题:因为当时我处理的路径名和下载的html文件中有空格存在的,此时就遇到一个问题,如果在后期处理词向量则使用空格进行字符分割会遇到大麻烦,所以为了保证出来的文本字符符合要求,先要遍历数据集中所有的文件和目录,将其中所有的空格字符替换一下x.replace(’ ‘,”)
,这个真给我搞醉了,一中午总算解决了,速度够慢的,后来还卡在一个183的错误上,卡了半天。(昨天在这里写的没有保存)在清理文件和文件夹名字的空格中遇到一个错误,显示error183,经过仔细的巡查应该出现在系统的错误上,比如在一个文件夹下有两个文件一个文件是w(2).html 一个文件是w (2).html 在这两个文件中,当程序处理到w (2).html时会将里面的空格去掉造成,两个文件名相同,所以返回一个系统错误,所以只能选择处理这样的错误,看处理到那里就直接将文件删除或者手动修改。
完整的源码如下

#coding:utf-8#主要功能是将一个目录文件中所有的目录和文件名字的空格删除
import osif True:i=0for parent, dirnames, filenames in os.walk(os.getcwd()):if i!=0 :#因为提取的第一个目录为根目录,导致循环的第一步总是出错,所以写一个条件判断省去第一步print parent[x, s] = os.path.split(parent)print os.path.join(x,s)print os.path.join(x, s.replace(' ', ''))#rename() 在使用的时候出现了很多次183的错误,原因是#文件中有两个文件一个有空格一个没有空格,对有空格的文件进行操作之后就会导致命名相同,程序报错os.rename(os.path.join(x,s), os.path.join(x,s.replace(' ', '')))print xprint scontinueelse:i=i+1

第二步 将网页中的url扣出来,直接使用的是匹配a标签内的href的值,加一个是否包含http的判断,将url存储起来。

第三步 扣取网页中meta信息,包括name=description ,keywords,还有p标签,li标签内部的文本等等

在beautiful中有一个很好用的方法是fand_all(),这个方法直接查找某个标签,然后对其直接操作就可以得到纯文本文件,所以在这里我直接谢了一个list将几个标签放进去了‘p’‘li’‘a’等等。
关于这个标签的问题,我一直也很奇怪到底哪些标签里面是有字符的,哪些是没有字符的,可以看到这几个标签基本上涵盖了所有的文本信息,所以,如有不对可以批评,后来发现实际‘meta’标签内的文本也是可以写在这个循环里面的,最后的版本中,将循环也写进去了,这里就不说了,随后会仿出来代码。
写一个循环之后,遍历每一个标签,使用一个方法处理得到文本代码如下

lists = ['p', 'a', 'td', 'li', 'span']
for list in lists:text1 = soup.find_all(list)for c in text1:x = strip_tags(str(c))print(x.replace('\n', ' '))if x != None:sheet1.write(j, col_num, x.replace('\n', ' '))col_num = col_num + 1

扣取出来文本之后,存在一个很小的错误,由于使用了记事本打开,这样记事本是一个含有utf-8 带BOM的编码格式,这样就造成在文件头虽然不显示,但是却有一些字符,造成半天不能把这些文本分割输出为单列的关键词数据,这是一个教训,下一次不要使用记事本打开txt文件,我使用了一个komo的工具,代码字体很像ubuntu 很好用。

第四步 提取每一个标签的关键字出来,

输入到google中搜索,经过TF_IDF的处理提取网页上面较为‘重要’的词,将这些词输入到google中进行搜索,得到排名靠前的url再次提取这些网页的关键词,这样就可以建立文本之间的联系。在这里google搜索的步骤,并没有自己写,我看了一篇博客,他介绍了自己写的工具,magic-google,github地址为https://github.com/howie6879/php-google 这一个工具使用了伪造浏览器信息和选用不同区域的google地址的方法来防止google的封锁。我们就不用造轮子了。代码我就不再放了,很简单,写两个循环,遍历所有训练文件,每个训练文件取TF_IDF值前几的关键词输入就ok

(不定时更新遇到的各种坑,做记录使用)

这篇关于爬取网页内所有的url和meta标签,title标签的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004809

相关文章

一文教你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图

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

CSS去除a标签的下划线的几种方法

《CSS去除a标签的下划线的几种方法》本文给大家分享在CSS中,去除a标签(超链接)的下划线的几种方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧... 在 css 中,去除a标签(超链接)的下划线主要有以下几种方法:使用text-decoration属性通用选择器设置:使用a标签选择器,将tex

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage