strip

scrapy-Redis 分布式爬虫

扶醉桌前 提交于 2021-02-09 00:10:48
案例1 :(增量式爬取)京东全部图书,自己可以扩展 爬取每一本电子书的评论 1.spider: # -*- coding: utf-8 -*- import scrapy from copy import deepcopy import json import urllib class JdSpider(scrapy.Spider): name = ' jd ' allowed_domains = [ ' jd.com ' , ' p.3.cn ' ] start_urls = [ ' https://book.jd.com/booksort.html ' ] def parse(self, response): dt_list = response.xpath( " //div[@class='mc']/dl/dt " ) # 大分类列表 for dt in dt_list: item = {} item[ " b_cate " ] = dt.xpath( " ./a/text() " ).extract_first() em_list = dt.xpath( " ./following-sibling::dd[1]/em " ) # 小分类列表 for em in em_list: item[ " s_href " ] = em.xpath( " ./a/@href " )

python 列表和字符串

旧城冷巷雨未停 提交于 2021-02-06 15:44:56
python 列表中保留所有字符串前三项,并保存到一个新的列表 l = [s[:3] for s in data] python 在列表中查找包含所以某个字符串的项,并保存到一个新的列表 l = [s for s in data if 'FF' in s] # 两个list的差集,并集和交集 https://blog.csdn.net/liao392781/article/details/80577483 方法一: list1 = [ ' a ' , ' b ' , ' c ' ] list3 = list1 list2 = [ ' a ' ] for i in list2: list3.remove(i) list3 Out[ 7]: [ ' b ' , ' c ' ] 方法二: list3 = list(set(list1) - set(list2)) # 列表相除、列表相加 import numpy as np a =[1,2 ] # 1、得到列表 <class 'list'> b=[i/2 for i in a]; print (b) # 2、得到<class 'numpy.ndarray'> b=np.array(a)/2; print (b) # 多个列表加减,用numpy c=np.array(a)+np.array(b)*2 print (c)

Python——Scrapy爬取链家网站所有房源信息

浪子不回头ぞ 提交于 2021-02-06 09:49:57
用scrapy爬取链家全国以上房源分类的信息: 路径: items.py # -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.html import scrapy class LianItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() pass class ErShouFangItem(scrapy.Item): # 省份 province = scrapy.Field() # 城市 city = scrapy.Field() # 总价 total_price = scrapy.Field() # 单价 single_price = scrapy.Field() # 楼层 room_info = scrapy.Field() # 住宅位置 region = scrapy.Field() # 房屋朝向及装修情况 direction = scrapy.Field() # 建筑面积 area = scrapy.Field() #

作为Android开发,你必须要掌握的Android冷启动优化知识

。_饼干妹妹 提交于 2021-02-05 20:38:12
我们搞Android开发这一行,很多时候都在追求新技术,但是实际上,要想在Android领域有长远的发展,还有很多东西要去了解,虽然不是最前沿的,但却是最基础的最需要的。 今天要和大家分享的就是作为Android开发必须掌握的Android冷启动优化。 原文地址: https://www.jianshu.com/p/0d2a093a6d48 前言 事件发生在发包上线的前两天,在某某云进行移动测试时,提示冷启动速度低于平均值的问题,之前自己也曾尝试过优化,但是发现效果并不是很明显,作为一个有追求的开发者,趁着有点空闲时间,要好好研究一下冷启动优化问题。 App的启动流程 我们可以了解一下官方文档 《App startup time》 对App启动的描述。应用启动分为冷启动、热启动、温启动。而冷启动是应用程序从零开始,里面涉及到更复杂的知识。我们这次主要是对应用的冷启动进行分析和优化。 应用在冷启动的时候,需要执行下面三个任务: 加载和启动应用程序; App启动之后立即展示出一个空白的启动窗口; 创建App程序的进程; 在这三个任务执行后,系统创建了应用进程,那么应用进程会执行下一步: 创建App对象; 启动Main Thread; 创建启动页的Activity; 加载View; 布置屏幕; 进行初始绘制; 当应用进程完成初始绘制之后

字节跳动Android金三银四解析:带你轻松理解Android-Hook机制,赶紧收藏!

雨燕双飞 提交于 2021-02-05 15:22:08
本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官 : 组件化如何实现,组件化与插件化的差别在哪里,该怎么选型 心理分析 :面试官从架构层次 了解求职者是否用过 模块化 组件化 和插件化,在过去经验有没有运用过这些技术到项目中,这道题属于一个连环炮。求职者该格外小心 **求职者:**应该从App开发的需求来定义技术选型,分别说说模块化,组件化 插件化的优势和区别 先上一份面试资料目录 1、知道它是什么、有什么用 相信很多人在学习的时候,一开始都会在网上找一整套资料或者买一本书来学习,结果就是内容太多,学了记不住或者学到一半感觉很难,便放弃了,更别提写代码了,根本无从入手。 而更好的一种办法便是学之前先不要着急买书,买资料,先了解一下这门语言或知识有什么作用,为什么会有这个,学习后可以解决什么问题,可以从事哪些工作,以及它的发展史,这样就可以保证我们学到的是最新的知识,以及对以后的工作方向有个大致认识。 有了这个大致的认识之后,再决定自己是否需要学习这门知识。 2、构建知识的思维导图 如果决定学习这门知识的话,在来构建这门知识的思维导图,它可以清楚的展现一门语言的知识结构,我们可以对照这思维导图上的知识点一个个的针对性的学习。 至于思维导图的制作可以参考书本目录和一些培训网站,尽可能的涵盖这门知识的所有知识点。 以下是我整理的 Android

Regex to select a file extension

China☆狼群 提交于 2021-02-05 11:31:28
问题 I have an apk file say MyApp.apk. I was trying to strip the .apk extension using the strip function in python. But the problem is, If my applications name is WhatsApp.apk then the function strips the letters pp also and outputs WhatsA . What Regex should I use to strip exactly the .apk away? 回答1: Why use regex? If you only want the filename then this code will do filename = 'MyApp.apk' filename = filename.rsplit('.', 1)[0] print filename output: MyApp 回答2: import re x="MyApp.apk" print re.sub

Strange Python strip() behavior [duplicate]

匆匆过客 提交于 2021-02-05 11:15:32
问题 This question already has answers here : str.strip() strange behavior (5 answers) Closed 5 years ago . I don't understand why the strip() function returns the way it does below. I want to strip() the last occurence of Axyx. I got around it by using rstrip('Axyx') but what's the explanation for the following? >>>"Abcd Efgh Axyx".strip('Axyx') 'bcd Efgh ' 回答1: The string passed to strip is treated as a bunch of characters, not a string. Thus, strip('Axyx') means "strip occurrences of A , x , or

美团一面就凉了,怒刷3000道面试题逆袭字节,含泪分享面经

梦想与她 提交于 2021-02-02 20:01:52
前言 本人二本大学科班出身,首次面试美团一面凉了。先分享一下美团的凉经,希望大家做好避坑准备: 一面: 1.http和https的区别,非对称加密和对称加密的原理,还有http2和http1的区别(多路复用、数据通过字节流传输) 2.tcp和udp的区别,TCP如何实现数据的可靠性传输(滑动窗口和拥塞控制) 3.说明一下tcp的三次握手和三次挥手,为什们一定要这样子 5.循环对象的方法有哪几种以及它们的区别(Object.keys() 、for of 、for in) 4.如何实现对象的深拷贝,考虑对象嵌套问题代码实现对象深拷贝(手撕失败,) 5.检测数据类型的方法有哪几种(typeOf 、instanceof、constructor、Object.prototype.toString.apply()) 6.说明一下防抖和节流,代码实现他们 7.了解过css动画吗?说一下transition和animation的区别以及transition的触发条件 8.html文件中script标签引入标签的defer属性和async属性以及它们与在head标签内引入的区别 9.给你一个数组根据时间按顺序每秒钟输出一个元素以及其下标 10.对css3的剪切属性有了解吗 11.html页面中为何会出现浮动以及如何清楚浮动(该开始理解成了float浮动,后面知道是BFC) 12.如何实现垂直居中

Docker从入门到上瘾,万字终极指南!

荒凉一梦 提交于 2021-02-02 14:33:07
容器简介 什么是 Linux 容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个镜像运行,并由该镜像提供支持进程所需的全部文件。 容器提供的镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。 更加详细地来说,请您假定您在开发一个应用。您使用的是一台笔记本电脑,而且您的开发环境具有特定的配置。其他开发人员身处的环境配置可能稍有不同。您正在开发的应用依赖于您当前的配置,还要依赖于某些特定文件。 与此同时,您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 您希望尽可能多在本地模拟这些环境,而不产生重新创建服务器环境的开销。 因此,您要如何确保应用能够在这些环境中运行和通过质量检测,并且在部署过程中不出现令人头疼的问题,也无需重新编写代码和进行故障修复?答案就是使用容器。 容器可以确保您的应用拥有必需的配置和文件,使得这些应用能够在从开发到测试、再到生产的整个流程中顺利运行,而不出现任何不良问题。这样可以避免危机,做到皆大欢喜。 虽然这只是简化的示例,但在需要很高的可移植性、可配置性和隔离的情况下,我们可以利用 Linux 容器通过很多方式解决难题。 无论基础架构是在企业内部还是在云端,或者混合使用两者,容器都能满足您的需求。 容器不就是虚拟化吗 是,但也不竟然。我们用一种简单方式来思考一下:

PyMySQL

牧云@^-^@ 提交于 2021-02-02 06:14:30
PyMySQL安装 pip install pymysql    连接数据库 在进行本文以下内容之前需要注意: 你有一个MySQL数据库,并且已经启动。 你有可以连接该数据库的用户名和密码 你有一个有权限操作的database 基本使用 # 导入pymysql模块 import pymysql # 连接database conn = pymysql.connect(host=“你的数据库地址”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”) # 得到一个可以执行SQL语句的光标对象 cursor = conn.cursor() # 定义要执行的SQL语句 sql = """ CREATE TABLE USER1 ( id INT auto_increment PRIMARY KEY , name CHAR(10) NOT NULL UNIQUE, age TINYINT NOT NULL )ENGINE=innodb DEFAULT CHARSET=utf8; """ # 执行SQL语句 cursor.execute(sql) # 关闭光标对象 cursor.close() # 关闭数据库连接 conn.close() # 导入pymysql模块 import pymysql # 连接database conn =