php登录抓取网页指定内容(智能解析便是一个的解析与储存(一)_光明网)

优采云 发布时间: 2022-02-18 09:17

  php登录抓取网页指定内容(智能解析便是一个的解析与储存(一)_光明网)

  在写爬虫之前,还是需要了解一些爬虫的基础知识,比如HTTP原理、网页基础知识、爬虫基本原理、cookie基本原理等。

  网络蜘蛛是一个很形象的名字。如果把互联网比作蜘蛛网,那么蜘蛛就是在网上爬行的蜘蛛。网络蜘蛛通过网页的链接地址搜索网页,从某个页面网站开始,读取该网页的内容,找到该网页中的其他链接地址,然后利用这些链接地址进行查找下一个网页,以此类推。循环继续,直到这个 网站 的所有页面都被爬取。

  爬虫流程:

  1、设置采集目标网站(home)并获取网站数据。

  2、当服务器无法访问时,尝试重新下载页面指定重试次数。

  3、需要的时候设置user-agent或者隐藏真实IP,否则页面可能无法访问。

  4、 对获取的页面进行必要的解码操作,然后获取需要的信息。

  5、在获取的页面中通过某种方法(如正则表达式)提取页面中的链接信息。

  6、 对链接进行进一步处理(获取页面并重复上述操作)。

  7、 为后续处理保留有用的信息。

  爬虫分析与存储

  1、分析

  对于解析,对于HTML类型的页面,其实不外乎几种常见的解析方式,regular、XPath、CSS Selector,而对于某些接口,常见的可能是JSON和XML类型,使用对应的库进行解析。只是处理它。最后,如果你的时间不是很紧,想要快速提升python,最重要的是不怕吃苦,建议你可以拿微信(谐音):2028979958,那真的很好,很多人都是进步神速,我要你不怕吃苦!你可以去添加它~

  这些规则和分析方法其实写起来很麻烦。如果我们要爬到10000个网站s,如果我们为每个网站写相应的规则,是不是太累了?所以智能解析是必须的。

  智能解析是指如果可以提供一个页面,算法可以自动提取页面的标题、正文、日期等内容,同时去除无用信息,如上图,这就是自动解析Safari 自带的阅读模式的结果。

  对于智能解析,以下分为四种方法:

  • 可读性算法,为不同的块定义不同的标签集,通过权重计算得到最可能的块位置。

  • 密度判断,计算单位块数中文本内容的平均长度,并根据密度程度粗略区分。

  • Scrapyly 自学习是 Scrapy 开发的一个组件。它可以通过指定页面页面和样本提取结果自学习提取规则并提取其他相似页面。

  • 深度学习,利用深度学习对解析位置进行监督学习,需要大量的标注数据。

  如果你能容忍一定的错误率,你可以使用智能解析来节省大量时间。

  目前我还在探索这部分,准确率有待提高。

  2、存储

  存储,也就是选择合适的存储介质来存储爬取的结果,这里分四种存储方式来介绍。

  • 文件,如JSON、CSV、TXT、图片、视频、音频等。常用的库有csv、xlwt、json、pandas、pickle、python-docx等。

  • 数据库分为关系型数据库和非关系型数据库,如MySQL、MongoDB、HBase。常用的库包括 pymysql、pymssql、redis-py、pymongo、py2neo 和 thrift。

  • 搜索引擎,如 Solr、ElasticSearch 等,便于检索和文本匹配。常用的库有elasticsearch、pysolr等。

  • 云存储,部分媒体文件可以存储在七牛云、优派云、阿里云、腾讯云、Amazon S3等。常用的库有七牛、upyun、boto、azure-storage、google-cloud-storage等。

  这部分的关键在于结合实际业务,看看哪种方式能更好的满足业务需求。最后,如果你的时间不是很紧,想要快速提升python,最重要的是不怕吃苦,建议你可以拿微信(谐音):2028979958,那真的很好,很多人都是进步神速,我要你不怕吃苦!你可以去添加它~

  爬行动物注意事项:

  1、 处理相对连接。有时我们从网页中得到的连接并不是完全的绝对连接,而是相对连接。这种情况下,URL后缀是拼接的(urllib.parse中的urljoin()函数这个可以做到)

  2、设置代理服务。有的网站会限制访问区域,比如美国的Netflix屏蔽了很多国家的访问),还有一些爬虫需要隐藏自己的身份,这种情况可以设置代理服务器,一般一牛云爬虫代理的稳定性和可用性都比较好,可以通过urllib.request中的ProxyHandler为请求设置代理。

  3、限制下载速度。如果我们的爬虫获取网页速度过快,可能会面临被封禁或“动产受损”的风险(这可能会导致官司和败诉),您可以在两次下载之间添加延迟来限制速度履带式。

  4、避免爬虫陷阱。有的网站动态生成页面内容,会导致页面数不胜数(比如在线万年历往往有无穷无尽的链接)。这个问题可以通过记录有多少链接(链接深度)已经通过到当前页面来解决。当达到预设的最大深度时,爬虫将不再将页面中的链接添加到队列中。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线