爬取网页内所有的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

相关文章

HTML中meta标签的常见使用案例(示例详解)

《HTML中meta标签的常见使用案例(示例详解)》HTMLmeta标签用于提供文档元数据,涵盖字符编码、SEO优化、社交媒体集成、移动设备适配、浏览器控制及安全隐私设置,优化页面显示与搜索引擎索引... 目录html中meta标签的常见使用案例一、基础功能二、搜索引擎优化(seo)三、社交媒体集成四、移动

HTML input 标签示例详解

《HTMLinput标签示例详解》input标签主要用于接收用户的输入,随type属性值的不同,变换其具体功能,本文通过实例图文并茂的形式给大家介绍HTMLinput标签,感兴趣的朋友一... 目录通用属性输入框单行文本输入框 text密码输入框 password数字输入框 number电子邮件输入编程框

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

HTML5 getUserMedia API网页录音实现指南示例小结

《HTML5getUserMediaAPI网页录音实现指南示例小结》本教程将指导你如何利用这一API,结合WebAudioAPI,实现网页录音功能,从获取音频流到处理和保存录音,整个过程将逐步... 目录1. html5 getUserMedia API简介1.1 API概念与历史1.2 功能与优势1.3

全面解析HTML5中Checkbox标签

《全面解析HTML5中Checkbox标签》Checkbox是HTML5中非常重要的表单元素之一,通过合理使用其属性和样式自定义方法,可以为用户提供丰富多样的交互体验,这篇文章给大家介绍HTML5中C... 在html5中,Checkbox(复选框)是一种常用的表单元素,允许用户在一组选项中选择多个项目。本

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

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

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

使用Python和Tkinter实现html标签去除工具

《使用Python和Tkinter实现html标签去除工具》本文介绍用Python和Tkinter开发的HTML标签去除工具,支持去除HTML标签、转义实体并输出纯文本,提供图形界面操作及复制功能,需... 目录html 标签去除工具功能介绍创作过程1. 技术选型2. 核心实现逻辑3. 用户体验增强如何运行