python
文章平均质量分 66
python
罗小爬EX
每天都在进步的IT男...
乐于分享技术经验,专注于前沿技术的探索,
目前就职于沈阳的IT软件架构师,擅长方向:Java、Spring、微服务、云原生、DDD。
展开
-
pycharm使用anaconda
目录一、安装anaconda二、创建新的env三、配置pycharm已有项目切换已经建好的anaconda env已有项目切换新建的anaconda env(需要新创建env)新建项目时设置anaconda env之前一直在windows环境使用pycharm加上virtualenv方式开发,最近由于本地多个virtualenv比较混乱,所以尝试切换anaconda一、安装anaconda下载地址:https://www.anaconda.com/products/individual#windows原创 2021-08-07 11:03:22 · 29356 阅读 · 3 评论 -
【转载】Python super()最简单的解释
首先提一下,经典类和新式类。在Python2中,如果定义类的方式是 class MyClass: 那么该类叫做经典类,如果定义类的方式为class MyClass(object): 那么该类为新式类。在Python3中,上面两种方式定义出来的类都叫新式类。本文是基于新式类来进行讲解的。正文:Python 中的super()是用于调用父类(或父类的父类...)方法的 函数,主要用于多继承,单继承问题不大。下面是一个多继承实例,继承关系为菱形继承,仔细观察下面三个实例:#codi...转载 2021-06-29 15:33:53 · 127 阅读 · 0 评论 -
Scrapy-Splash使用中遇到的问题
一、html内容乱码解决方法:https://github.com/scrapinghub/splash/pull/102即在自定义的headers中包含 Accept-Encoding: gzib即会返回乱码的Html内容,最暴力的解决方案:移除自定义的Accept-Encoding原创 2021-03-22 15:56:04 · 1729 阅读 · 0 评论 -
Scrapy Splash
参考:https://splash.readthedocs.io/en/stable/https://github.com/scrapinghub/splashSplash是一个Javascript渲染服务(a javascript rendering service),1、可以很方便的通过Docker镜像启动,2、提供丰富Http Api接口(可替代Lua脚本的编写),3、基于Python3中Twisted和QT5实现,提供全异步(fully asynchronous)的渲染服务,且充分利用原创 2021-03-21 12:13:00 · 1321 阅读 · 0 评论 -
Scrapy集成Selenium ChromeDriver
官网chromedriverchromedriver-downloadsRunning Selenium Headless with Chrome安装chrome浏览器1、windows可通过 帮助->关于Google Chrome查看已安装的Chrome版本2、linuxTODO下载chromdriver下载链接:https://sites.google.com/a/chromium.org/chromedriver/downloads1、选择对应的版本2、选择对应的操作系原创 2021-03-19 09:17:13 · 2934 阅读 · 2 评论 -
Scrapy自定义设置
一、settings.py# 可直接再settings.py中自定义设置SVC_URL = 'http://localhost:8080/xx'然后在Scrapy中通过spider.settings来获取# 在spider中通过self.settingsself.settings.get('SVC_URL')# 在pipelines(获取其他组件中)中通过参数spider获取spider.settingsspider.settings.get('SVC_URL')可通过启动参数全局覆盖原创 2021-03-10 14:02:44 · 536 阅读 · 0 评论 -
Scrapy根据Url验证请求响应
参考链接:Scrapy-document-selector1. 打开shell界面(示例为Pycharm Terminal),执行scrapy shell {your_crawl_url}scrapy shell https://docs.scrapy.org/en/latest/_static/selectors-sample1.html如上scrapy shell示例返回完整Html如下:<html> <head> <base href='http://原创 2021-01-16 17:59:24 · 326 阅读 · 0 评论 -
Scrapy Css Selector扩展
参考:Scrapy-document-selectorto select text nodes, use ::textto select attribute values, use ::attr(name) where name is the name of the attribute that you want the value of转载 2021-01-16 17:05:02 · 156 阅读 · 0 评论 -
Scrapy验证response内容
例如CrawlSpider,可重写_parse(如下仅加入logging日志打印) def _parse(self, response, **kwargs): logging.info(f"【{self.data_source_name}】url={response.url}, response={response.text}") return self._parse_response( response=response,原创 2021-01-16 16:28:18 · 476 阅读 · 0 评论 -
scrapy CrawlSpider设置headers
参考:CrawlSpider带headers和cookies请求,解决302重定向和禁止访问问题通常在使用CrawlSpider时,可以指定rules,但却没有指定headers、cookies的地方,我们可以在start_requests通过scrapy.Request指定headers和cookies,但是之后CrawlSpider在根据rules爬取的link请求新页面时,是没有携带headers的(默认会记住并携带cookie),我这边遇到的情况就是初始请求通过start_requests设置h原创 2021-01-16 16:27:57 · 579 阅读 · 0 评论 -
Python datetime - strftime vs strptime
参考:pythone3/library/datetime.html#datetime.timezone strftime() and strptime() Behavior date, datetime, and time objects all support a strftime(format) method, to create a string representing the time under the control of an explicit for原创 2021-01-04 11:29:24 · 311 阅读 · 0 评论 -
Scrapy Request重试
参考链接:scrapy自定义重试方法Retrying a Scrapy Request even when receiving a 200 status codedef parse(self, response): try: data = json.loads(response.text) except json.decoder.JSONDecodeError: next_retry = response.meta.get('retry_times',原创 2021-01-16 16:30:01 · 1048 阅读 · 0 评论 -
python爬虫基础 - XPATH
XPath常用规则示例HTML<div id="songs-list"> <h2 class ="title">经典老歌</h2> <p class="introduction"> 经典老歌</p> <ul id="list" class="list-group"> <li data-view="2 "&...原创 2020-03-01 18:42:55 · 807 阅读 · 0 评论 -
安装scrapy
1.之前安装过Twisted-19.10.0-cp38-cp38-win_amd64.whl(对应Python3.8)pip install Twisted-19.10.0-cp38-cp38-win_amd64.whl2.之后直接安装scrapy(可以通过pycharm直接进行安装)pip install scrapy安装成功后使用即可使用scrapy查看是否安装成功注:可能还需...原创 2020-03-01 18:39:32 · 622 阅读 · 0 评论 -
Python爬虫基础
爬取流程发送请求——获得页面——解析页面——下载内容——储存内容基础模块urllib, urllib2, requests, bs4(Beautifulsoup), pyquery动态页面selenium(会了这个配合scrapy无往不利)phantomJS(不显示网页的selenium)解析语言正则表达式, XPATH, CSS遇到反爬虫策略验证码之类tesserocr等数...原创 2020-02-08 13:57:46 · 607 阅读 · 0 评论 -
Python中下划线_的使用
模式示例说明单前置下划线_x约定的私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问,不建议在类的外面访问单后置下划线x_用于避免与Python关键词的冲突双前置下划线__x避免与子类中的属性命名冲突,无法在外部直接访问(名称修饰(name mangling) 所以访问不到)双前后置下划线__ini...原创 2020-03-01 18:43:54 · 661 阅读 · 0 评论 -
python函数定义
# 定义def my_func(param1, param2): print(param1 + param2) # 调用my_func('val1', 'val2')# 调用 - 关键字实参(可指定形参名,顺序无关)my_func(param1='val1', param2='val2')my_func(param2='val2', param1='val1')#...原创 2020-01-20 15:26:32 · 634 阅读 · 0 评论 -
python多变量赋值
# 多变量赋值 - 数组形式data = ['hello', 18, [2002, 2, 2]]name, age, birth = dataprint(name)print(age)print(birth)# 多变量赋值 - 元组形式data = ('hello', 18, [2002, 2, 2])name, age, birth = dataprint(name, age...原创 2020-01-20 15:17:29 · 2900 阅读 · 0 评论 -
windows下使用pycharm的一些注意事项
首先安装python 3.8注意选中环境变量配置安装pycharm开发工具通过Settings->Project->Project Interceptor处点击+按钮导入依赖包导入包过程中如果提示如下:error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C...原创 2019-12-17 17:11:37 · 734 阅读 · 0 评论