数据爬虫
各类爬虫技术和框架,以及在爬取数据过程中碰到的各类问题和解决方案
bladestone
15年的软件行业开发经验,9年项目管理经验;5年爬虫经验
展开
-
Scrapy之CsvItemExporter生成的CSV文件乱码解决
环境信息Python 3.6.5Scrapy 2.2导出文件逻辑self.file = open("/Users/chenjunfeng02/Downloads/enrolldata.csv", "wb") self.exporter = CsvItemExporter(self.file, fields_to_export=["provinceCode", "provinceName", "collegeCode", "collegeName"])原创 2020-09-03 09:01:37 · 1172 阅读 · 1 评论 -
Scrapy回调函数callback传递参数的方式
Scrapy回调函数回调方法示例:yield Request(url=self.base_url + 'QueryInfo', headers=self.request_headers, method="POST", body=json.dumps(request_params), callback=self.page_query_schools, cb_kwargs=add_params)callback对应的是page_query_school()即为回调的方法。传递参数方式如何向回调方法中原创 2020-09-01 23:10:40 · 5268 阅读 · 2 评论 -
Selenium使用中的场景问题与应对
问题与应对在Selenium的使用中,有大量的各类问题,这里将这些问题汇总一下,并给出相应的应对策略。问题列表问题1: selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page...原创 2018-07-24 14:16:43 · 1098 阅读 · 0 评论 -
Pyspider使用过程教程以及若干问题记录
#问题记录问题1 问题的错误信息:Exception: HTTP 599: Unable to communicate securely with peer: requested domain name does not match the server's certificate.解决的办法:将代码中的基于https开头的地址,切换为http即可。实际的url地址还...原创 2018-08-13 14:13:43 · 2759 阅读 · 0 评论 -
反爬虫策略调研与分析
爬虫时代在互联网上,各类的信息数据相当大一部分是发布在Web页面上的,于是一大批以此为生的网站便诞生了。 baidu和google便成为其中的佼佼者,它们是这个星球上最大牌的爬虫,最多的爬虫,为这个世界的Web页面建立索引,方便大家查找信息。在爬虫基础之上,才有了大家每天都离不开的搜索引擎服务。 爬虫可以爬取任何可以访问的Web页面,开发一个爬虫其实非常的简单和容易。但是并不是所有的页...原创 2018-09-05 19:06:47 · 897 阅读 · 0 评论 -
Web Crawler与Scrap技术分析
Scrapy与无头浏览器Scrapy Middleware Casezhihu demojs seleniumScrapy Middleare Case2Scrapy Middleware Case3Multi Queue in ScrapyAdvanced Scrapying TipsWeb Scrapying tips自动识别验证码 ...原创 2018-09-06 18:15:43 · 1086 阅读 · 0 评论 -
Scrapy中如何实现迭代爬取的思路实现
引言爬虫设计思路代码实现总结引言 在Scrapy进行数据爬取的时候,直接能够爬取到目标数据的概率不大,一般都是需要通过几层URL地址的爬取,才能最终获取到想要的结果数据,那该如何实现这些目标呢?爬虫设计思路 在Scrapy中定义的Request和FormRequest对象都提供了callback字段,运行在爬取网页之后,可以执行callback方法,...原创 2018-05-06 18:30:49 · 2859 阅读 · 0 评论 -
Scrapy学习资料推荐
推荐资料简明教程 https://www.tutorialspoint.com/scrapy/index.htm 示例代码 https://www.programcreek.com/python/原创 2018-05-06 19:01:08 · 2067 阅读 · 0 评论 -
基于Headless浏览器来访问当当页面商品信息--代码示例
依赖库说明selenium: 兼容不同浏览器的WebDriver PhantomJS: 著名的无头浏览器,不幸的是最近maintainer放弃继续支持维护了,真是一件悲伤的事情。 开发语言: Python 3.6功能描述从当当商城中爬取某个商品的价格和名称。这里尝试查找”非暴力沟通“的图书信息,输出价格和命名。代码示例 # -*- coding: utf-8 ...原创 2018-07-10 15:17:03 · 657 阅读 · 0 评论 -
基于Selenium自动爬虫电商上的数据
selenium一个功能强大的自动化测试工具,当然这里不用做自动化测试,而是用来进行自动化的爬取数据的。前置安装首先需要安装ChromeDriver,这里也可以安装Firefox的driver。 安装地址: https://sites.google.com/a/chromium.org/chromedriver/ 提示信息: 建议大家自行寻找人肉翻=墙的工具,自行下载。Fi...原创 2018-07-24 14:11:53 · 713 阅读 · 0 评论 -
爬取电商站点上所有的商品列表信息
爬取描述爬取某电商上的所有python的关键字信息,这里主要是指图书,每个图书只需要名称和所属的店铺名称信息即可。实现这里直接上代码:from selenium import webdriverimport pandas as pdfrom urllib.parse import quotefrom selenium.webdriver.common.by impor...原创 2018-07-24 14:26:41 · 3448 阅读 · 0 评论 -
基于Flask的最简Web请求
引言: Python功能强大,可以用来进行Web服务的开发,这里将给出一个最简单的示例,仅做参考。Flask这里使用了Flask作为Web服务的框架,其简单精悍,非常易学易用。示例代码代码如下:import logging.configimport jsonfrom flask import Flaskfrom flask import make_response...原创 2018-08-10 16:47:36 · 625 阅读 · 0 评论 -
CentOS上安装Selenium和google Driver的过程以及问题记录
引言Selenium主要用在自动化测试中,但是也可以用在爬取数据中,由于其实真实的浏览器,则可以无缝地提取数据,而无需担心各类的数据屏蔽,这里主要介绍在CentOS上安装它们的过程以及其中碰到的各类问题记录。环境介绍CentOS 7.4 , Selenium 3.13.0, google chrome, Gecko Driver,这里以google的chrome为例,Gecko的过...原创 2018-08-10 17:20:08 · 27396 阅读 · 7 评论 -
Scrapy之AttributeError: 'str'/"list" object has no attribute 'xpath'问题分析
环境介绍Scrapy 1.5.1 , Python 3.6.5问题描述在调用过程中,会报出以下错误信息:'str' object has no attribute 'xpath'在代码中,尝试对于Selector对象调用xpath方法,选取特定的Web元素节点。 代码示例如下: def parse_item(self, response): ...原创 2018-08-10 17:55:59 · 26502 阅读 · 1 评论 -
PyCurl安装过程中的问题记录分析
Pyspider & Pycurlpyspider是一个大名鼎鼎的爬虫框架,在安装过程中,碰到了pycurl的相关问题,现在记录如下,方便后续参考。 说明: pyspider在windows 7下的安装可以正常,但是运行过程中,会报出不同的错误信息,不建议在windows上运行。环境说明Centos 7, Python 3.6.5分析过程pip install...原创 2018-08-13 11:11:36 · 2527 阅读 · 0 评论 -
Pyspider启动过程中的问题ssl/nss错配问题
pysider的配置pyspider, centos 7.4 , python 3.6.5问题的提出在启动pyspider的过程中,碰到如下的问题: 其中的信息如下:[root@AY131203102210033c39Z ~]# pyspider[W 180813 11:23:41 run:413] phantomjs not found, continue running w...原创 2018-08-13 11:33:38 · 2233 阅读 · 1 评论 -
CentOS 7从Python 2.7升级至Python3.6.1
引言: Centos是目前最为流行的Linux服务器系统,其默认的Python 2.x,但是根据python社区的规划,在不久之后,整个社区将向Python3迁移,且将不在支持Python2, 那该如何平滑迁移至Python3 呢?原创 2017-04-11 20:12:14 · 21556 阅读 · 13 评论 -
Python SQLite3的问题sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in th
引言: SQLite是基于文件系统的mini数据库,我们用以存放简便的数据,本文将描述在代码中碰到的并发问题。原创 2017-04-18 00:27:57 · 15896 阅读 · 1 评论 -
Python下Flask-ApScheduler快速指南
引言:Flask是Python社区非常流行的一个Web开发框架,本文将尝试将介绍APScheduler应用于Flask之中。原创 2017-04-18 09:59:11 · 21553 阅读 · 3 评论 -
Python下APScheduler的快速指南
引言:在编程语言中,定时任务是常用的一种调度形式,在python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法。原创 2017-04-18 07:48:54 · 26366 阅读 · 2 评论 -
Web浏览器中动态添加修改HTML页面代码的问题分析
引言:在Web的世界里,浏览器加载页面,展示给用户最终的内容,可是最终展示的HTML代码与服务器上存储的代码一致吗?原创 2017-04-20 23:44:51 · 8887 阅读 · 0 评论 -
Flask中如何简便从Request中提取请求的参数值
引言: Flask是Python非常著名的微服务Web框架,但是其并未提供简便的从Request中提取参数的方式,本文将介绍一种简便的方式。原创 2017-04-24 17:30:30 · 20175 阅读 · 0 评论 -
Python之Headers value 1 must be of type str or bytes, not <class 'int'>错误的解决
Python之Headers value 1 must be of type str or bytes, not <class 'int'>错误的解决原创 2017-04-25 14:52:04 · 18180 阅读 · 4 评论 -
基于Python, Selenium, Phantomjs无头浏览器访问页面
引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧。原创 2017-04-26 01:18:48 · 14362 阅读 · 0 评论 -
Python中实现装饰模式的三种方式
功能目标编写一个可以打印被装饰函数名称、执行时间、内存地址得装饰器前置依赖包import time import functools from decorator import decorator基于普通的函数嵌套> def log1(fn): def _wrapper(*args, **kwargs): start = time.clock()原创 2017-05-30 22:06:55 · 2024 阅读 · 0 评论 -
基于Flask实现文件的上传功能的多实例Web服务
flask是Python中非常轻量的Web框架,允许开发者以非常少的代码实现各类的Web应用,本文将简单实例一个简单Web的文件上传功能的开发。环境介绍Centos 7.2, virtual env 下的python 3。安装flask pip3 install flask pip3 install flask_uploads这里安装了flask相关的组件...原创 2018-01-30 15:16:31 · 2913 阅读 · 0 评论 -
Scrapy之爬取结果导出为Excel的快速指南
引言基于Scrapy来爬取数据只是手段,这些爬取的结果需要按照一定的方式导出或者存储到数据库中,excel是在日常工作中使用最为广泛的工具之一,本文介绍如何来讲爬取结果存储excel文件。环境介绍Python 3.6.1 Scrapy 1.5.0定义Domain对象定义爬取数据对象的实体类:import scrapyclass EnrolldataItem(sc...原创 2018-05-06 17:57:49 · 8566 阅读 · 2 评论 -
Scrapy中诡异xpath的匹配内容失效问题分析
引言在爬虫的世界里,xpath是一种非常简单易用的匹配规则,方便我们在web世界里提取需要的各类信息。本文将讲述一个xpath规则无效的问题分析过程。环境介绍Python 3.6.1 Scrapy 1.5.0问题在选用xpath之时,都是基于firefox或者chrome中自带的Web开发工具来选取的。这里一般推荐使用chrome的devtool,功能强大,简单易用,童叟...原创 2018-05-06 16:38:44 · 4271 阅读 · 1 评论 -
Scrapy之迭代爬取网页中失效问题分析
引言问题的提出问题分析问题的解决总结引言在Scrapy中,在很多种情况下,需要一层层地进行爬取网页数据,就是基于url爬取网页,然后在从网页中提取url,继续爬取,循环往复。 本文将讲述一个在迭代爬取中,只能爬取第一层网页的问题。问题的提出 scrapy crawl enrolldata Scrapy代码执行结果输出如下: “` ...原创 2018-05-06 17:37:40 · 3550 阅读 · 0 评论 -
Python中方法的缺省参数问题分析
引言: 在Python中可以缺省给方法制定缺省值,但是这个缺省值在某些情况下确是和我们预期不太一致的…..。 这个诡异的问题,曾经困然了我几天时间,才最终定位出来…..测试代码 from datetime import datetime import timedef test(curdate=datetime.now()): print(“The current Time:%s原创 2017-07-14 11:40:45 · 3673 阅读 · 0 评论 -
Python问题分析:AttributeError: module 'sys' has no attribute 'setdefaultencoding'
问题描述AttributeError: module 'sys' has no attribute 'setdefaultencoding'样例代码import syssys.setdefaultencoding('utf-8')问题分析目前的Python版本是3.6.1,其默认的编码格式是utf-8。 》import sys 》sys.getdefaultencoding()原创 2017-12-13 17:57:20 · 31779 阅读 · 4 评论 -
Python下ImportError: DLL load failed: 找不到指定的模块之问题分析
环境依赖问题的提出问题的查找问题的解决总结参考资料环境依赖OS: window 7, python 3.6 Anaconda: 5.0.1问题的提出在运行Python代码的时候,碰到了如下问题:runfile('D:/code/test.py', wdir='D:/code')Traceback (most recent call l...原创 2018-03-19 16:02:47 · 120634 阅读 · 5 评论 -
CentOS下ImportError: No module named '_sqlite3'之问题分析
问题环境依赖问题提出问题分析总结问题环境依赖OS: CentOS 7.2 Python 3.5问题提出在运行一个Python程序之时,在调用sqlite之时,碰到如下的错误信息: Traceback (most recent call last): File "decode_conv.py", line 6, in <mod...原创 2018-03-19 17:16:08 · 17382 阅读 · 0 评论 -
JuypterLab简明教程
JuypterLabJupyter Lab究竟有哪些新的特性让整个Python业界如此兴奋呢?IDE 它是一个名副其实的IDE,且是一个基于网页的IDE(保留了全部的notebook特性)。我个人认为仅仅凭借这一条,Jupyter项目就是一个飞跃。这个集成环境不仅有Console,还有IPython Terminal、所有开发所用到的资源(如图片、代码、文本等)、插件库等。MarkD...原创 2018-03-29 16:48:12 · 8760 阅读 · 0 评论