![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
爬虫(停更)
早期学的知识,已停更,现在主要学习数学
耐耐~
这个作者很懒,什么都没留下…
展开
-
如何用item pipeline(管道)清洗数据
Item Pipeline是处理数据的组件,一个Item Pipeline是一个包含特定接口的类,通常只负责一种功能的数据处理,在一个项目中可以使用多个Item Pipelines,也就是需要定义多个类,它们按照次序联合起来对数据进行处理,形成一条数据处理流水线。 接着上文《如何使用scrapy的item来封装数据》,我现在需要实现额外的三个处理——将价格的单位英镑转换为人民币、去除掉书名相同的...原创 2018-08-05 09:25:21 · 3037 阅读 · 1 评论 -
如何使用scrapy的item来封装数据
引言在第一篇如何写第一个scrapy里面,我们是使用字典来对数据进行传递,使用字典有以下缺点。无法直观地了解数据中包含哪些字段缺乏对字段名字的检测不便于携带元数据为了克服上述问题,我们可以使用scrapy中自定义的item类封装爬取到的数据。 spider.py文件import scrapyfrom books.bookitem import BookIte...原创 2018-07-31 15:49:57 · 3251 阅读 · 1 评论 -
运行scrapy shell 'http://quotes.toscrape.com'出现错误ValueError: invalid hostname: 'http
解决办法是把单引号改为双引号,即scrapy shell “http://quotes.toscrape.com”转载 2018-07-15 23:24:39 · 499 阅读 · 0 评论 -
scrapy带参数的命令
带请求头使用shell:scrapy shell -s USER_AGENT="content" url输出信息:使用self.log()函数ItemLoader的使用:ItemLoader在每个字段都包含了一个输入处理器和一个输出处理器, 输入处理器收到数据时立刻提取数据 (通过 add_xpath(), add_css() 或者 add_value() 方法) 之...原创 2018-07-15 23:23:43 · 1557 阅读 · 0 评论 -
numpy基础——数组的组合与分割
常用组合函数分类数组的组合有常用的函数,下面分一下类。水平组合:hstack、column_stack垂直组合:vstack、row_stack水平\垂直组合:concatenate深度组合:dstack 什么是水平组合? a''' array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])'''b...原创 2018-07-20 19:56:25 · 1516 阅读 · 0 评论 -
numpy基础——对数组切片操作
创建首先创建一个多维数组:a = numpy.arange(24).reshape((2,3,4))print(a)结果是:[[[ 0 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[12 13 14 15] [16 17 18 19] [20 21 22 23]]]切片操作切片操作有几个常用符号,分别是‘:’ ...原创 2018-07-20 19:22:09 · 1155 阅读 · 0 评论 -
scrapy第一发——基础巩固
目标:爬取http://books.toscrape.com"将该网站上50页,每页20本的书的价格、等级、书名、书的ISBN号等爬取下来并保存在mongoDB数据库里面。该网站如图:首先建立一个爬虫项目,新建一个spider文件,name取值为"book"class BookSpider(scrapy.Spider): name = 'book'整个项目的文件结构如下重写start_re...原创 2018-07-15 09:35:39 · 297 阅读 · 0 评论 -
python的zip函数
描述zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。语法zip 语法:zip([iterable, ...])返回值元祖列表如:for i in zip(range(5)): print...原创 2018-07-18 14:36:25 · 239 阅读 · 0 评论 -
lambda表达式
lambda表达式的结构:lambda args[,args...] : 表达式lambda构造的是一个匿名函数,可以直接在lambda后面附上参数调用,也可以作为函数赋值给另外变量。‘:’冒号前面是函数的参数,冒号后面是函数体的语句,不需要写return语句,表达式的值会被返回。 看一个例子: f = lambda s:' '.join(s.split()) f('thi...原创 2018-07-16 16:39:08 · 1073 阅读 · 0 评论 -
text和content方法的区别
requests对象的get和post方法都会返回一个Response对象,这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。其中返回的网页部分会存在.content和.text两个对象中。两者区别在于,content中间存的是字节码,而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码成字符串。直接输出content,会发现前面存在b'这转载 2017-09-23 23:17:50 · 10678 阅读 · 3 评论 -
BeautifulSoup中的.text方法和get_text()方法的区别
转自https://www.crifan.com/python_beautifulsoup_string_vs_text/【背景】是别人问我的:BeautifulSoup 4中,soup.string和soup.text何有区别。【折腾过程】1.去beautifulsoup的官网:bs3:http://www.crummy.com/software/Beautifu转载 2017-09-23 23:01:11 · 81203 阅读 · 1 评论