精华内容
下载资源
问答
  • 爬取的数据中去掉换行
    千次阅读
    2018-11-19 19:24:01

    解决调用normalize-space函数清除多余空格时导致爬取内容清空和清除爬取内容的空格字符

    一、函数的使用方法为:

    见官网链接:

    二、对于normalize-space函数清除多余空格时导致爬取内容清空:

    对于该问题建议不使用该函数,因为该函数是在xpath路径中使用,我们只需将xpath路径爬取的内容保存为字符串,然后使用正则表达式re.sub()替换空格换行符即可:

    sub(pattern, repl, string, count=0)
    第一个参数:规则
    第二个参数:替换后的字符串
    第三个参数:字符串
    第四个参数:替换个数。默认为0,表示每个匹配项都替换

    使用的具体例子为:

    >>> a="\t\t\n 123"
    >>> a
    '\t\t\n 123'
    >>> b = re.sub(r'\s+','', a) #\s   匹配任意的空白符
    

    输出为:(’\s+‘将空格和,\t,\n,\r等多替换成’'了)

    >>> b
    '123'
    所以,同样是去除空格符和换行符等字符,只要用正则表达式替换即可。
       
    
    
    更多相关内容
  • nbsp字符串,在网页表示空格,字符为\xa0,当我想要把空格转换为换行时,发现在使用replace(’\xa0’ *8,’\n’)时会把每个文本字符串的第一个字截取掉,查阅并尝试后发现使用split()可以完美解决: ...

    最近在学习Python爬虫时,遇到了&nbsp字符串,在网页中表示空格,字符为\xa0,当我想要把空格转换为换行时,发现在使用replace(’\xa0’ *8,’\n’)时会把每个文本字符串的第一个字截取掉,查阅并尝试后发现使用split()可以完美解决:

    	htmlUrl = 'http://www.biqukan.com/0_178/15661946.html'
    	res = requests.get(url = htmlUrl)
    	htmlText = res.text
    
    	bf = bs4.BeautifulSoup(htmlText,'html.parser')
    	bfText = bf.find_all('div',id = 'content',class_ = 'showtxt')
    	#按空白符分割后根据换行符拼接
    	print('\n'.join(bfText[0].text.split()))
    
    展开全文
  • 网页数据的预处理是非常复杂的问题,幸运的是,已经有很多开源软件能够很好地处理这些问题了,比如用unicodedata解决去除网页的各种换行和空格问题。

    前言

    网页数据的预处理是非常复杂的问题,幸运的是,已经有很多开源软件能够很好地处理这些问题了,把这些工具学好用好,就可以解决工作中遇到的绝大多数问题。

    1. 问题描述

    最简单、最常见的问题就是如何去除HTML中的换行(\r和\n)、制表符(\t)。这个问题有很多解决方案,包括用字符串替换,正则表达式等。但有的时候,处理某些网页时,还是会出问题,导致处理后的网页出现很多图标,比如:黑色方块、菱形甚至星星。

    2. 解决方案

    试试用unicodedata

    unicodedata提供了对Unicode字符数据库(Unicode Character Database,UCD)的访问,该数据库为所有Unicode字符定义了字符属性。

    Unicode字符被划分为很多类别(Category),其中一个类别是C类别(具体信息可以查看下文),通过去掉这个类别的字符,可以把文本中一些格式字符、不可见的控制字符(如"^V, ^I" 或者zero-width的如\u200d等字符)给过滤掉,换行、制表符当然也不在话下。

    # python3
    import unicodedata
    return "".join(ch for ch in text if unicodedata.category(ch)[0] != 'C')
    

    3. Unicode Category相关知识

    Normative Categories
    Abbr.
    
    Description
    
    Lu	Letter, Uppercase
    Ll	Letter, Lowercase
    Lt	Letter, Titlecase
    Mn	Mark, Non-Spacing
    Mc	Mark, Spacing Combining
    Me	Mark, Enclosing
    Nd	Number, Decimal Digit
    Nl	Number, Letter
    No	Number, Other
    Zs	Separator, Space
    Zl	Separator, Line
    Zp	Separator, Paragraph
    # 下面这些就是C类别
    Cc	Other, Control
    Cf	Other, Format
    Cs	Other, Surrogate
    Co	Other, Private Use
    Cn	Other, Not Assigned (no characters in the file have this property)
    
    Informative Categories
    Abbr.
    
    Description
    
    Lm	Letter, Modifier
    Lo	Letter, Other
    Pc	Punctuation, Connector
    Pd	Punctuation, Dash
    Ps	Punctuation, Open
    Pe	Punctuation, Close
    Pi	Punctuation, Initial quote (may behave like Ps or Pe depending on usage)
    Pf	Punctuation, Final quote (may behave like Ps or Pe depending on usage)
    Po	Punctuation, Other
    Sm	Symbol, Math
    Sc	Symbol, Currency
    Sk	Symbol, Modifier
    So	Symbol, Other
    
    展开全文
  • python爬虫课设-爬取3000条数据并做数据可视化

    千次阅读 多人点赞 2021-08-23 20:22:36
    很久以前接的单子,分享一下 文章目录作业要求数据爬取爬取结果数据处理数据可视化大作业文档 作业要求 《Python与数据分析》期末...3、必须自己编写爬虫程序,不允许使用爬虫框架(如scrapy) 爬取数据,严禁抄袭。 .

    很久以前接的单子,分享一下(挺水的,将就着看吧)

    作业要求

    《Python与数据分析》期末大作业要求(2020-2021学年第2学期)
    一、期末作业要求:
    1、在前期作业爬取的数据基础上,用Python编写代码对爬取的数据进行全面数据分析并可视化,鼓励建立计量模型进行分析;
    2、写作期末大作业文档:整体思路,对爬取网站的分析,对数据进行哪些方面的数据分析及数据的可视化,结论。
    3、必须自己编写爬虫程序,不允许使用爬虫框架(如scrapy) 爬取数据,严禁抄袭。
    二、提交:
    1、爬虫程序代码(前期作业)文件
    (.ipynb),加, 上必要的注释或笔记说明;
    2、数据分析、可视化代码文件(.ipynb) ,加上必要的注释或笔记说明;
    3、抓取的数据文件及数据分析和可视化产生的中间文件;
    4、期末作业文档。

    数据爬取

    # 用于爬取信息
    import requests
    # 用于解析网页
    from bs4 import BeautifulSoup
    # 用于正则匹配找到目标项目
    import re
    # 对csv文件的操作
    import csv
    
    # 打开文件
    # a+权限追加写入
    # newline=""用于取消自动换行
    fp = open("data.csv", "a+", newline="")
    # 修饰,处理成支持scv读取的文件
    csv_fp = csv.writer(fp)
    # 设置csv文件内标题头
    head = ['日期', '最高气温', '最低气温']
    # 写入标题
    csv_fp.writerow(head)
    
    # UA伪装
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0"
    }
    
    # 存放全部数据
    data = []
    
    # 进行url拼接,主要拼接的是年份和月份
    # 从2011年到2020年
    for i in range(2011, 2021):
        # 从1月到12月
        for j in range(1, 13):
            # 字符串化
            i = str(i)
            # 小于10则补0
            if j < 10:
                j = "0" + str(j)
            else:
                # 字符串化
                j = str(j)
            # 完成拼接
            url = "http://www.tianqihoubao.com/lishi/beijing/month/" + i + j + ".html"
    
            # 获取响应
            response = requests.get(url=url, headers=headers)
            # 设置编码为gbk
            response.encoding = 'gbk'
            # 获取响应文本数据
            page = response.text
            # 用BeautifulSoup解析网页
            soup = BeautifulSoup(page, 'lxml')
            # 获取所有tr标签
            tr_list = soup.find_all('tr')
    
            # 解析每一个tr标签
            for tr in tr_list:
                # 用于存放一天的数据
                one_day = []
                # 字符串化便于正则匹配
                tr = str(tr)
                # 去除所有空格
                tr = tr.replace(" ", "")
                # 取出日期
                date = re.findall(r'title="(.*?)北京天气预报">', tr)
                # 如果取到则放入one——day存放
                if date:
                    one_day.append(date[0])
                # 取出最高温和最低温
                tem = re.findall(r'(.*?)℃', tr)
                # 如果取到则放入one——day存放
                if tem:
                    one_day.append(tem[0])
                    one_day.append(tem[1])
                # 如果完整的取到一天的数据则放入data存放
                if len(one_day) == 3:
                    data.append(one_day)
                    print(one_day)
                    # 写入csv文件
                    csv_fp.writerow(one_day)
    
    # 关闭文件指针
    fp.close()
    
    

    爬取结果

    在这里插入图片描述

    数据处理

    # 读取csv文件
    import csv
    # 作图工具
    from matplotlib import pyplot as plt
    
    # 存放日期
    x = []
    # 存放最高气温
    h = []
    # 存放最低气温
    l = []
    # 读取之前爬取的数据
    with open("data.csv") as f:
        reader = csv.reader(f)
        j = 1
        for i, rows in enumerate(reader):
            # 不要标题那一行
            if i:
                row = rows
                print(row)
                x.append(rows[0])
                h.append(int(rows[1]))
                l.append(int(rows[2]))
    # 设置画板大小
    fig = plt.figure(dpi=128, figsize=(20, 6))
    # 显示中文标签
    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['axes.unicode_minus'] = False
    # 画最高气温
    plt.plot(x, h, c="red", alpha=0.5)
    # 画最低气温
    plt.plot(x, l, c="blue", alpha=0.5)
    # 区间渲染
    plt.fill_between(x, h, l, facecolor="blue", alpha=0.2)
    # 标题
    plt.title("北京市过去3658天的气温变化")
    # y轴名称
    plt.ylabel("气温")
    # x轴名称
    plt.xlabel("日期")
    plt.xticks(x[::300])
    plt.show()
    
    

    数据可视化

    请添加图片描述

    大作业文档

    整体思路
    爬取天气后保网站北京市过去9年(3658天)的最高温度和最低温度,并运用matplotlib绘制折线图进而分析天气变化趋势
    网站分析
    1.该网站单次只能查询一个月的天气情况,所以通过拼接url的方式依次查询
    2.查询数据位于table表单中,tr标签没有属性,所有用正则匹配处理每个tr时需要判断有没有取到数据,日期,最高气温,最低气温都查询到时视为成功并存入总数据的列表
    数据分析
    1.通过过去3658天的气温变化,可以看出北京市每年的寒暑气温温差基本稳定在50度左右,而2015年寒暑温差超过60度
    结论
    1.北京市温度变化基本符合规律

    展开全文
  • 假如pwd.txt的字符段是:69E8C4DCCDB07F4B4E387BAEE77AE2178642DB44FD87CC94310125437725A0C078C9A7EC7B723C0C代码片段如下:fi=open(r"G:/pwd.txt")fw=open(r"decrypts.txt",'a+')withfiasf:foriinf:printi#往每...
  • Python爬取网页数据

    万次阅读 多人点赞 2018-08-29 17:20:35
    都说python爬网页数据方便,我们今天就来试试,python爬取数据到底有多方便 简介 爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息 准备 IDE:pyCharm 库:requests、...
  • Python笔记(从入门到爬取数据写入excel与数据库) 内容有点多,慢慢看,会有收获的!! 字符格式化输出 %的用法 age = 18 name = '小帅锅' # % 占位符 %d 数字占位符 %s 字符串占位 print("我的年龄是: %d"%age) ...
  • 如何利用Python爬取网站数据

    千次阅读 2020-12-03 02:45:39
    1.基本方法其实用python爬取网页很简单,只有简单的几句话这样就可以获得到页面的内容。接下来再用正则匹配去匹配所需要的内容就行了。但是,真正要做起来,就会有各种各样的细节问题。2.登录这是一个需要登录认证的...
  • 2.网络爬虫的功能 图2网络爬虫可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取网站上面的图片,比如有些朋友将某些网站上的图片全部爬取下来,集中进行浏览,同时,网络爬虫也可以用于金融投资领域,比...
  • 1.因为后面自己的毕业设计项目关于到了短日记中文情感分析模型的建立和训练,在网上收集训练集的时候找不到合适的日记训练集,找到的都是一些微博评论的数据,训练之后感觉这个微博评论数据集的准确率和适配性不是很...
  • python快速去除字符串空格 换行和制表符 import re print(re.sub("\s|\t|\n",''mstr))
  • 它跟 nbsp 不一样,是可以被换行间断的。常用于制造缩进, wiki 还说用于抬头,但没见过。 这里还有一个 Unicode.org 上关于 CJK 标点符号块的字符代码表。 转自https://www.cnblogs.com/my8100/p/7709371.html 0....
  • Python爬虫之微信数据爬取(十三)

    万次阅读 多人点赞 2019-03-20 22:42:49
    # 在实际操作如果文件名含有 * 标志,会报错。则直接可以将其替换掉 if img_name is "*" : img_name = "" #通过os . path . join ( ) 函数来拼接文件名 img_file = os . path . join ( base_path...
  • 使用python爬虫库requests,urllib爬取今日头条街拍美图 代码均有注释 import re,json,requests,os from hashlib import md5 from urllib.parse import urlencode from requests.exceptions import ...
  • python初学者爬取数据完整教程

    千次阅读 2020-03-25 16:00:35
    都说python爬网页数据方便,我们今天就来试试,python爬取数据到底有多方便 简介 爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息 准备 IDE:pyCharm 库:requests、lxml 大概...
  • Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地 目录 Python 爬虫 之 爬取豆瓣电影数据简单解析并保存到本地 一、简单介绍 二、实现原理 三、注意实现 四、实现步骤 五、代码 一、简单介绍 ...
  • 这一篇是对第六篇的一个改进和补充,第六篇里是对百度百科的图片进行保存,对这个代码改一改就可以爬取百度百科的信息了,浩哥当时想用身高作为一个列子,爬一下试试,当时的代码如下: import requests import re...
  • 基本方法其实用python爬取网页很简单,只有简单的几句话这样就可以获得到页面的内容。接下来再用正则匹配去匹配所需要的内容就行了。但是,真正要做起来,就会有各种各样的细节问题。2.登录这是一个需要登录认证的...
  • 一、非结构化文本的爬取 微博上有一篇关于“#学校里的男生有多温柔#”的话题,点进去一看感觉评论很真实,于是想把评论给爬下来看一看,并生成词云。刚开始思路是通过网页端微博爬取,通过开发者工具查看分析后,...
  • 换行\n替换为字符串\s\n\s,再去掉行首行末的空格。整个过程在vim可以很快就写好。 Excel操作 这次的数据是放进Excel的。到后面才意识到如果放进数据库的话,可能就没有那么多事了。但是已经写到一半,难以回头...
  • python爬取网站数据

    2021-03-06 16:22:22
    换行\n替换为字符串\s\n\s*,再去掉行首行末的空格。整个过程在vim可以很快就写好。 Excel操作 这次的数据是放进Excel的。到后面才意识到如果放进数据库的话,可能就没有那么多事了。但是已经写到一半,难以回头...
  • 网友也对《中国医生》原型展开热烈讨论,关于《中国医生》的话题在多个平台登上热搜,今天我们就通过抓取近3万条评论数据,并对获取到的数据进行分析,看看电影观众们对这部电影的评价究竟如何? 一、核心功能设计 ...
  • 分享一个爬取豆瓣top250的电影信息。按照套路,自然是先去看看源代码了,一看,基本的信息竟然都有,心想这可省事多了。简单分析了下源代码,标记出所需信息的所在标签,ok,开始干活!鉴于正则表达式的资料已经看了...
  • 前言:最近一次密码学实验,给了一段超级长(7页小四宋体的16...读出时为了避免包括了'\n'的换行符,需要把它去除掉。直接上例子这是我人为加入一些回车换行的一串随机文本,它在记事本下就是这样不不连续的感觉代...
  • 爬取B站视频播放量及数据可视化

    千次阅读 多人点赞 2020-12-14 14:43:38
    爬取B站视频及简要数据分析一级目录 一级目录
  • Python爬虫系列:爬取小说并写入txt文件

    千次阅读 多人点赞 2022-02-16 09:26:10
    导语: 哈喽,哈喽~都说手机自带的浏览器是看小说最好的一个APP,不须要下载任何软件,直接百度就ok了。 但是小编还是想说,如果...爬取网站:笔趣阁(以天蚕土豆的《斗破苍穹》为例) 代码部分展示: # 导..
  • Python爬取网站数据

    万次阅读 2018-08-02 19:55:32
    其实用python爬取网页很简单,只有简单的几句话 1 2 import urllib2 page = urllib2.urlopen( 'url' ).read() 这样就可以获得到页面的内容。接下来再用正则匹配去...
  • Python爬取信箱数据

    千次阅读 2019-03-28 16:35:45
    最近受人之托,帮忙用python开发程序实现爬取大连海事大学信箱的2000条数据(主题和意见建议)保存到excel。 2、项目分析 首先,我们打开信箱列表链接http://oa.dlmu.edu.cn/echoWall/listEchoWall.do如图所示...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,364
精华内容 545
关键字:

爬取的数据中去掉换行