python 爬虫爬取内容时, \xa0 、 \u3000 的含义

处理方法 str.replace(u’\xa0′, u’ ‘) 最近用 scrapy 爬某网站,发现拿到的内容里面含有 \xa0 、 \u3000 这样的字符,起初还以为是编码不对,搜了一下才知道是见识太少 233 。 \xa0 是不间断空白符   我们通常所用的空格是 \x20 ,是在标准ASCII可见字符 0x20~0x7e 范围内。而 \xa0 属于 latin1 (ISO/IEC_8859-1)中的扩展字符集字符,代表空白符nbsp(non-breaking space)。latin1 字符集向下兼容 ASCII ( 0x20~0x7e )。通常我们见到的字符多数是 latin1 的,比如在 MySQL 数据库中。 这里也有一张简陋的Latin1字符集对照表。 \u3000 是全角的空白符 根据Unicod…

Read More

python 抓取页面数据,并保存图片文本到指定目录文件夹

这个爬虫主要利用scrapy+beautifulsoup完成,其中图片保存碰到了一个大坑,花了一天的时间才解决。 大坑就是:在抓取文章页指定区域所有图片的时候,刚好那块区域的图片所有页面都一样,导致图片下载完第一个页面的时候,其他页面就不会再去下载了。所以其他文件夹里没有图片数据。一开始以为代码写错了,最后换了个地址才找到原因,ImagesPipeline实现图片下载中 同样的图是不会重复下载的! 成功后的效果图如下: items.py文件代码编写 # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # https://docs.scrapy.org/en/latest/topics/items.html import scrapy class m…

Read More

python 创建目录文件夹 OS函数

Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建。 主要涉及到三个函数 1、os.path.exists(path) 判断一个目录是否存在 2、os.makedirs(path) 多层创建目录 3、os.mkdir(path) 创建目录 import os def mkdir(path): # 去除首位空格 path=path.strip() # 去除尾部 \ 符号 path=path.rstrip(“\\”) # 判断路径是否存在 # 存在 True # 不存在 False isExists=os.path.exists(path) # 判断结果 if not isExists: # 如果不存在则创建目录 # 创建目录操作函数 os.makedirs(path) print (path+’ 创建成功’) retur…

Read More

urlretrieve下载函数

from urllib import request request.urlretrieve(‘https://pic4.zhimg.com/80/v2-0abff609470f23e79b3b3d1f02b42b2f_hd.jpg’,’zhihu.jpg’) 这个函数可以方便的将网页上的一个文件保存到本地

遍历一个文件夹下所有的文件夹及文件的名称

import os path = ‘../pachong’ def get_file(path): # abspath获取目标文件夹的绝对路径 path = os.path.abspath(path) # listdir获取指定文件夹中的所有文件和文件夹组成的列表 files = os.listdir(path) for file in files: # join将2个路径合成一个路径 abs_path = os.path.join(path, file) if os.path.isfile(abs_path): print( abs_path ) else: get_file(abs_path) get_file(path)  

python+tqdm 实现图片音视频下载进度条显示

from tqdm import tqdm import time,requests def downloadFILE(url,name): res = requests.get(url=url,stream=True) #stream=True的作用是仅让响应头被下载,连接保持打开状态, content_size = int(res.headers[‘Content-Length’])/1024 with open(name, “wb”) as f: print(“文件包整个大小是:”,’%.2f’ %(content_size/1024),’mb’,’开始下载…’) for data in tqdm(iterable=res.iter_content(1024),total=content_size,unit=’k’,desc=name,ascii=True): #调用iter_c…

Read More

腾讯云,阿里云安装python环境

前段时间买了个腾讯云的学生套餐ECS服务器,价格120一年,很划算,但是一直也没有拿来使用,刚好最近在学习python,就打算利用起来做爬虫的服务器。 ECS服务器我安装的是centos7.4的系统 然后安装anaconda包。这个包自带了python环境和很多相关的组件包,使用起来特方便 (这个安装包可以直接在云服务器管理后台的的命令行里安装也可以putty) wget https://repo.anaconda.com/archive/Anaconda3-2019.07-Linux-x86_64.sh bash Anaconda3-2019.07-Linux-x86_64.sh 使用putty登录远程服务器 安装成功之后,在putty里 输入命令 python 可以看到python版本信息,代表python安装成功了 然后flashfxp 软件上传本地的python文件到根目录下 然后…

Read More

Python+scrapy实现自动爬取数据

在命令行输入scrapy命令新建项目   scrapy startproject mrle (mrle改成你需要的项目名字)     在spiders目录下新建一个deal.py 的文件来处理整个爬取内容的数据 import scrapy import bs4 import csv from ..items import mrleItem # 需要引用mrleItem,它在items里面。因为是items在deal.py的上一级目录,所以要用..items,这是一个固定用法。 class mrleSpider(scrapy.Spider): #定义一个爬虫类mrleSpider。 name = ‘mrle’ #定义爬虫的名字。 allowed_domains = [‘www.lovelifemrle.com’] #定义爬虫爬取网址的域名。 start_urls = [] #定义起始网址。 …

Read More

python——random.sample()的用法

写脚本过程中用到了需要随机一段字符串的操作,查了一下资料,对于random.sample的用法,多用于截取列表的指定长度的随机数,但是不会改变列表本身的排序: list = [0,1,2,3,4] rs = random.sample(list, 2) print(rs) print(list) 》》》[2, 4] #此数组随着不同的执行,里面的元素随机,但都是两个 》》》[0, 1, 2, 3, 4]   上面这种方法要求知道已知的数列,但是不能满足我在一定范围内,随机出一定长度数据的要求。下面这种方法,跟range相结合,在指定范围内获取一定长度的数据,这个用起来就比较灵活,代码如下: rs = random.sample(range(0, 9), 4) print(rs) 》》》[2, 6, 0, 4]