赞
踩
爬虫抓取了想要的文本之后,接下来就是对爬虫爬取的所有文本进行自然语言处理。在这里提供两个思路。
1.直接在爬虫文件中添加自然语言处理的函数,功能是对爬取的文章进行自然语言处理。
2.先保存爬虫爬取的所有文件到一个指定的文件夹,新建一个自然语言处理程序进行遍历所有的文件夹中的文本,然后打开相应的文本进行处理。
两种方法无所谓好坏,看个人需求吧。我是偏向在爬虫中添加,简单快捷,不容易出错。
一些基本过程可以参考:
AI&BigData four:使用scrapy爬取网站,按照指定的格式存入txt文本的详细过程复盘:
https://blog.csdn.net/weixin_41931602/article/details/80336601
自然语言处理爬过的坑:使用python结巴对中文分词并且进行过滤,建立停用词。常见的中文停用词表大全
https://blog.csdn.net/weixin_41931602/article/details/80430380
自然语言处理爬过的坑:使用python遍历所有的文件夹中的所有文本.标准库OS的常用函数总结大全
https://blog.csdn.net/weixin_41931602/article/details/80458740
自然语言处理爬过的坑:基于爬虫抓取的语料,使用gensim建设dictionary、corpus、tfidf_model并保存成文件
https://blog.csdn.net/weixin_41931602/article/details/80458852
自然语言处理函数版块的思路具体如下:
读取一篇文章,然后做分词,过滤,加入词典,利用词典把分词结果构建成bow,把bow放进语料列表。
这是一篇文章的处理流程,所有文章都这么处理一遍,就可以把最后的词典和语料列表保存
然后把这个词典和语料输入到tfidf模型中训练就可以得到模型文件了
接下来是第一种方法爬虫程序的所有代码:
- # -*- coding: utf-8 -*-
- # !/usr/bin/python
- import scrapy
- import time
- import os
- import jieba
- import codecs
- from bs4 import BeautifulSoup
- from scrapy.http import Request
- from baichuan2.items import Baichuan2Item
- from gensim import corpora
- from gensim import models
- from collections import defaultdict
-
-
- base =r"C:\Users\ME\Desktop\Python project\pachong\scrapy\baichuan2/"
-
- class InsuranceSpider(scrapy.Spider):
- name = 'insurance'
- allowed_domains = ['insurance.cngold.org/']
- bash_url = 'http://insurance.cngold.org/'
-
- def start_requests(self):
- #构造不同板块的url
- base = ['jgdt/','gsdt/','cxdt/']#调试时候记得改数字,加快调试效率
- big_shuzu = []
- for i in range(3):
- url = self.bash_url + base[i]
- # print url
- yield Request(url,self.parse,meta={'big_shuzu':big_shuzu})#调用parse函数
-
- def parse(self, response):
- big_shuzu = response.meta['big_shuzu']
- items = [] # 创建一个空列表,用来存储匹配到的数据
- website_name = response.css('h1 a span::text').extract_first()#大板块的名字
- # print website_name
- big_name = response.css('.title h2::text').extract_first() # 小版块的名字
- # print big_name
- first_url = response.css('.fl a[class]::attr(href)').extract_first() # 小版块的url
- # print first_url
- file_name = base + website_name
- # 创建主目录
- if (not os.path.exists(file_name)):
- os.makedirs(file_name)
- second_file_name = file_name + '/' + big_name # 创建副目录
- if (not os.path.exists(second_file_name)):
- os.makedirs(second_file_name)
- str1 = response.css('.last a::attr(href)').extract_first()[-13:-9]
- # print str1
- urls = []
- for
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。