原生爬虫爬取数据存入数据库的简单过程

本文章实现用Python3 借助pymysql模块爬取斗鱼一些直播信息 并存入数据库中的简单操作

第一步:爬取网站的直播信息并处理

第二步:存入本地*.(txt)

第三步:存入数据库

import  re
from urllib import request
import pymysql

class Spider():
    url = 'https://www.huya.com/g/wzry'
    root_pattern = '<span class="txt">([\s\S]*?)</li>'
    name_pattern = '<i class="nick" title="([\s\S]*?)">'
    number_pattern = '<i class="js-num">([\s\S]*?)</i>'
    def _fetch_content(self):
        r = request.urlopen(Spider.url)
        htmls = r.read()
        htmls = str(htmls,encoding='utf-8')
        #htmls = r.read().decode('utf-8')
        return htmls
    def refine(self,anchors):
        l = lambda anchor:{'name':anchor['name'][0].strip(),'number':anchor['number'][0]}
        return map(l,anchors)
    def sort__seed(self,anchor):
        r = re.findall('\d*',anchor['number'])
        number = float(r[0])
        if '万' in anchor['number']:
               number *= 10000
        return  number
    def sort__rank(self,anchors):
        return sorted(anchors,key = self.sort__seed,reverse = True)
    def __analysis(self,htmls):
        root_html = re.findall(Spider.root_pattern,htmls)
        anchors = []
        for html in root_html:
            number = re.findall(Spider.number_pattern, html)
            name = re.findall(Spider.name_pattern,html)
            anchor = {'name':name,'number':number}
            anchors.append(anchor)
        return anchors
    def __show(self,anchors):
        for anchor in anchors:
            print('name : '+ anchor['name']+' number : '+anchor['number'])
    def __write(self,anchors):
        fr = open("d:\spider__write.txt", "w")
        fr.write('id+^+name+^+viewer__number\n')
        for anchor in anchors:
            fr.write(anchor['name']+'^'+anchor['number']+'\n')
        fr.close()
    def read__db(self,anchors):
        db = pymysql.connect("localhost", "root", "123456", "imooc")
        cursor = db.cursor()
        count = 0
        fr = open("d:\spider__write.txt", "r")
        try:
            for line in fr:
                count += 1
                if(count == 1):
                    continue
                line = line.strip().split('^')
                # cursor.execute("insert into rank__list(name,viewer__number) values(%s,%s)", [line[0],line[1]])
                cursor.execute("insert into rank__list(name,viewer__number) values('%s','%s')" %(line[0],line[1]))
                db.commit()
        except Exception as e:
            print(e)
            db.rollback()
        cursor.close()
        db.close()
        fr.close()
    def go(self):
        htmls =  self._fetch_content()
        anchors = self.__analysis(htmls)
        anchors = list(self.refine(anchors))
        anchors = self.sort__rank(anchors)
        # self.__show(anchors)
        self.__write(anchors)
        self.read__db(anchors)
spider = Spider()
spider.go()

 

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 1. 数据采集:利用网络爬虫技术从互联网上获取评论数据。 2. 数据预处理:对采集的评论数据进行处理,例如去重、过滤噪声数据、清洗错误数据等。 3. 数据存储:将处理后的评论数据存储到数据库或其他存储介质中,方便后续的分析和应用。 ### 回答2: 爬取评论数据的三个过程分别是准备工作、数据抓取和数据清洗与存储。 首先,在准备工作阶段,我们需要确定要爬取的评论数据来源和目标网站。然后,我们需要分析目标网站的页面结构和评论数据的位置,确定需要的信息字段和数据结构。接着,我们需要选择合适的爬取工具和技术,例如Python编程语言以及相关的库如爬虫框架Scrapy等。在准备工作中,还需要了解目标网站的访问规则和爬虫限制,以便遵守合适的爬取策略。 其次,在数据抓取阶段,我们利用编写的爬虫程序,根据准备工作中的信息和技术选型,自动化地从目标网站上进行数据抓取。这包括了模拟网页的访问、请求和响应过程,通过爬虫程序访问目标网站并提取评论数据,可以使用原生的HTTP库或者第三方爬虫框架。在这个过程中,我们需要处理不同的网页结构和不同的评论布局,以确保能成功抓取到我们所需的数据。如果需要多页爬取,还需要进行翻页处理和分页访问。 最后,在数据清洗与存储阶段,我们需要对抓取到的数据进行清洗和预处理,以便后续的分析和应用。这包括了去除重复数据、过滤无效数据、修正错误数据、规范化数据格式等。数据清洗可以使用相关的数据处理工具和方法,例如Python的pandas库。清洗完成后,我们可以选择将数据存储到数据库中,如MySQL、MongoDB等,或以文本文件的形式进行存储,如CSV文件、JSON文件等。这样,我们就可以方便地对评论数据进行后续的分析、挖掘和可视化处理。 总结来说,爬取评论数据的三个过程分别是准备工作、数据抓取和数据清洗与存储。准备工作阶段主要是确定目标网站、分析页面结构和选择相应的爬取工具和技术;数据抓取阶段是从目标网站中自动化地抓取评论数据,并处理多页和分页访问;数据清洗与存储阶段是对抓取到的数据进行清洗和预处理,并选择合适的方式进行存储。 ### 回答3: 爬取评论数据的三个过程主要包括数据收集、数据清洗和数据分析。 首先是数据收集阶段。在这个过程中,我们需要确定获取评论数据的目标网站或平台,并通过网络爬虫工具来提取评论数据。常见的爬取评论数据的方式包括通过API接口获取数据或使用网络爬虫程序自动访问网页,提取评论内容并保存到本地数据库或文件中。在收集数据之前,需要根据爬取的相关网站或平台的规则和协议进行设置,确保获取数据的合法性和可用性。 接下来是数据清洗阶段。爬取的评论数据通常包含一些重复、噪声或非结构化数据,需要进行清洗和预处理,以提升数据的准确性和可用性。在数据清洗过程中,可以采用一些技术手段如去重、过滤噪声数据、去除HTML标签、处理缺失值等,使数据更加整洁和规范。此外,还可以进行文本分词、标注情感倾向等文本处理操作,以便后续的数据分析。 最后是数据分析阶段。在这个过程中,我们可以运用各种统计分析工具和技术,对爬取的评论数据进行分析。这包括使用数据可视化工具,如图表、图像等来展示评论数据的分布和趋势;使用自然语言处理技术对评论数据进行情感分析、主题建模等;使用机器学习算法挖掘评论数据中隐藏的有价值的信息。通过分析评论数据,可以帮助企业了解用户需求和反馈,优化产品或服务,并做出相应的决策。 总的来说,爬取评论数据的三个过程包括数据收集、数据清洗和数据分析。通过这些过程,可以从评论数据中获得有价值的信息,以指导企业决策和提供更好的产品或服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值