Python
进击的Spider
路漫漫其修远兮,吾将上下而求索。
展开
-
日期格式转换
1.<class 'datetime.date'> 转换为<class 'str'>类型date_1 = datetime.date(year, mon+1, day2).strftime("%Y-%m-%d")2.# 获取当前时间 格式:2018-12-18now_date = time.strftime('%Y-%m-%d', time.localt...原创 2021-08-30 22:17:12 · 124 阅读 · 0 评论 -
单例模式
class A(object): instance = None def __new__(cls, *args, **kargs): if cls.instance is None: cls.instance = super().__new__(cls) return cls.instancei1 = A()...原创 2018-12-08 23:03:26 · 101 阅读 · 0 评论 -
冒泡排序,快速排序,选择排序,二分查找
'''冒泡排序原理: 每一趟只能将一个数归位, 如果有n个数进行排序,只需将n-1个数归位, 也就是说要进行n-1趟操作(已经归位的数不用再比较),每一次都是得到比较列表中最大的数。冒泡排序算法及其优化冒泡排序的基本特征是只能交换相邻的元素。从下边界开始,一趟扫描下来,可以把当前最大值顶到上边界;如果没有发生交换操作,则表示数组是有序的'''def bubble_sort(se...原创 2018-11-27 22:20:35 · 344 阅读 · 0 评论 -
线程池
#! /usr/bin/env python# -*- coding: utf-8 -*-# see https://www.cnblogs.com/zhang293/p/7954353.htmlimport timefrom concurrent.futures import ThreadPoolExecutordef say_hello(a): print("hell...原创 2018-11-29 23:15:06 · 126 阅读 · 0 评论 -
取余和取模的区别
>> mod(5,2)ans =1 % 除数是正,余数就是正>> mod(-5,2)ans =1>> mod(5,-2)ans =-1 % 除数是负,余数就是负>> mod(-5,-2)ans =-1 % 用 rem 时,不管除数是...原创 2018-11-29 13:45:34 · 191 阅读 · 0 评论 -
使用 selenium 下载小视频
#!/usr/bin/env python# -*- coding:utf-8 -*-from selenium import webdriverimport urllibimport urllib.requestimport time# 普通爬虫,使用Charles抓包获取网址url,但是西瓜视频url只能使用一次# url加密,只能使用selenium获取数据,浏览器url...原创 2018-11-24 15:18:36 · 2514 阅读 · 1 评论 -
pytesseract 使用简介
#!/usr/bin/env python# -*- coding:utf-8 -*-import pytesseractfrom captcha.image import ImageCaptchaimport randomimageCaptcha = ImageCaptcha()chars = []# A ~ Zfor i in range(65,91): ...原创 2018-11-24 15:16:48 · 1222 阅读 · 0 评论 -
pytesseract 识别验证码
使用 tesseract 技术,练习验证码识别技术#!/usr/bin/env python# -*- coding:utf-8 -*-import pytesseractimport urllibimport urllib.requestfrom PIL import Imageurl = 'https://so.gushiwen.org/RandCode.as...原创 2018-11-24 15:14:53 · 261 阅读 · 0 评论 -
global、nonlocal 作用域
一句话:global:你要重新赋值,就要声明;不声明,就只能引用变量nonlocal: 不管你用,还是赋值,都需要声明!!!注: 这里的用的意思是:使用该变量做运算,但是 不改变 该 变量名 的 原始值 赋值的意思是:将 该 变量名 重新 赋一个 新值!!!global: 使用global关键字声明: 变量名 -----> 为全局变量例: global ...原创 2018-11-19 18:19:08 · 138 阅读 · 0 评论 -
爬取西刺免费代理,并验证IP的有效性
#!/usr/bin/env python# -*- coding: utf-8 -*-import requestsimport urllibimport urllib.requestfrom bs4 import BeautifulSoupfrom http import clientfrom threading import Threadfrom threa...原创 2018-11-19 15:22:15 · 907 阅读 · 0 评论 -
列表转字符串,列表转元组,元组转列表
''' 将列表转换成字符串 '''list1 = [str(x) for x in range(10)]print(type(list1[0]))str1 = ''.join(list1)print(str1)list1 = ['abe', 1, 3, 4, 'c']list_str = [str(x) for x in list1]str2 = ''.join(list_st...原创 2018-11-27 22:48:04 · 2401 阅读 · 0 评论 -
进程
首先,先从多任务讲起:现代操作系统(Windows、Mac OS X、Linux、UNIX等)都支持"多任务"什么叫多任务???操作系统同时可以运行多个任务早期电脑都是单核cpu,他执行任务原理:操作系统轮流让各个任务交替执行,QQ执行2Us,切换到微信,执行2Us,再切换到陌陌,执行2Us,……。表面上看,每个任务反复执行下去,但是CPU调度执行太快了,导致我们感觉就像所有任务...原创 2018-11-30 23:47:04 · 113 阅读 · 0 评论 -
window系统 安装scrapy 报错:Microsoft Visual C++ 14.0 is required……
window系统 安装scrapy 会报缺少gcc+ 安装错误解决building 'twisted.test.raiser' extensionerror: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualst...原创 2019-02-01 14:45:57 · 248 阅读 · 0 评论 -
日期时间转换
import datetimenewsTime='Sun 23 Apr 2017 05:15:05'GMT_FORMAT = '%a %d %b %Y %H:%M:%S'newsTime=datetime.datetime.strptime(newsTime, GMT_FORMAT)print(newsTime)#2017-04-23 05:15:05原创 2018-12-24 23:37:14 · 293 阅读 · 0 评论 -
用virtualenv管理Python3运行环境
用virtualenv管理Python3运行环境:https://www.cnblogs.com/hiddenfox/p/virtualenv-python3.html 解决centos7 中安装virtualenvwrapper配置时报错virtualenvwrapper.sh文件无法找到:https://blog.csdn.net/hpwzjz/article/details/...转载 2018-12-11 00:31:14 · 199 阅读 · 0 评论 -
用virtualenv管理Python3运行环境
参考网址:https://www.cnblogs.com/hiddenfox/p/virtualenv-python3.html转载 2018-12-11 00:31:14 · 138 阅读 · 0 评论 -
requests(打印日志 | 连接数据库 | 获取动态代理 | 爬取数据)
import requestsimport loggingimport timeimport jsonimport pymysqlimport os# 打印日志log_name = 'sb_spider_log.log'logging.basicConfig( # 日志输出信息 filename=log_name, filemode='a', leve...原创 2018-12-16 22:40:57 · 869 阅读 · 0 评论 -
数据解析 保存csv文件 提取数据遇到逗号 如何处理
https://blog.csdn.net/lanji1988/article/details/60139600 csv写入时指定表头https://blog.csdn.net/zn505119020/article/details/77480969原创 2018-12-21 15:41:15 · 4676 阅读 · 0 评论 -
进程线程协程的区别
https://www.cnblogs.com/lei0213/p/8393323.html### 进程池一个进程占用一个CPU,占用一定的内存空间。一般CPU配置都是4核,如果开的进程太多,其他的程序就得等着。###### 什么情况家使用多进程?CPU是用来计算的。所以在CPU密集运算的情况下,才使用多进程。具体要开几个进程,根据机器的实际配置和实际生产情况而定。### ...原创 2018-12-09 16:51:34 · 1336 阅读 · 0 评论 -
斗鱼爬虫 -- selenium技术
#!/usr/bin/env python# -*- coding:utf-8 -*-import timefrom selenium import webdriverchrome = webdriver.Chrome()# invalid selector xpath语句错误# 标题# titles = chrome.find_elements_by_xpath('//...原创 2018-11-21 22:39:35 · 323 阅读 · 0 评论 -
腾讯招聘爬虫
#!/usr/bin/env python# -*- coding: utf-8 -*-import urllibimport urllib.requestfrom bs4 import BeautifulSoupurl = 'https://hr.tencent.com/position.php?&start=%d'def parse(html,fp): ...原创 2018-11-16 16:12:14 · 231 阅读 · 0 评论 -
关于 Web客户端的授权认证 反爬处理技术
import urllibimport urllib.request# urllib.error.HTTPError: HTTP Error 401: UNAUTHORIZEDurl = 'http://127.0.0.1:80/'# web授权,可以特定Handlerpwmgr = urllib.request.HTTPPasswordMgrWithDefaultR...原创 2018-11-02 00:18:21 · 211 阅读 · 0 评论 -
百度翻译爬虫(案例练习:POST 请求)
#!/usr/bin/env python# -*- coding:utf-8 -*-import urllib.requestimport urllib.parseimport jsonimport ssl# 通过抓包工具,获取接口post_url = 'https://fanyi.baidu.com/v2transapi'headers = { 'User-Age...原创 2018-10-30 21:45:32 · 1262 阅读 · 1 评论 -
百度贴吧爬虫(案例练习:GET 请求)
#!/usr/bin/env python# -*- coding: utf-8 -*-import urllib.requestimport urllib.parseimport sslget_url = 'http://tieba.baidu.com/f?kw=%s&ie=utf-8&pn=%d'# 全局取消证书验证ssl._create_defaul...原创 2018-10-31 16:08:52 · 446 阅读 · 0 评论 -
肯德基爬虫 (案例练习:ajax、post)
#!/usr/bin/env python# -*- coding: utf-8 -*-import urllibimport urllib.requestimport urllib.parse# ajax postpost_url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=pid'headers = ...原创 2018-10-31 17:53:30 · 817 阅读 · 0 评论 -
使用handler技术,处理封闭IP的反爬技术
#!/usr/bin/env python# -*- coding: utf-8 -*-import urllibimport urllib.requestimport os# 将用户名、密码、ip保存到环境变量中proxy_server = os.environ.get('proxyServer')user = os.environ.get('proxyuser')pas...原创 2018-10-31 23:28:38 · 150 阅读 · 0 评论 -
豆瓣爬虫 (CookieJar练习 :爬取用户登入后的响应页面)
#!/usr/bin/env python# -*- coding: utf-8 -*-import urllibimport urllib.requestimport urllib.parsefrom http.cookiejar import CookieJarimport ssl# 全局取消证书验证# ssl._create_default_https_context ...原创 2018-11-01 22:08:38 · 588 阅读 · 0 评论 -
知识点
mixin : Less中,允许你将一个类嵌入到另一个类中,被嵌入的类也可以看作变量。换句话说,你可以用一个类定义样式,然后把它当作变量,在另一个类中,只要引用变量的名字,就能使用它的所有属性,Less把这种特性称作 mixin,中文把翻译为“混入”或“混合”,其目的就是从现有的样式中添加属性。http://www.waibo.wang/bible/less/html/2/2.2.1....原创 2018-10-29 21:41:12 · 99 阅读 · 0 评论 -
User-Agent反扒
#!/usr/bin/env python# -*- coding:utf-8 -*-import randomimport requestsdef load_page(url): """ 作用: 根据url发送请求,获取服务器响应文件 :param url: 需要爬取的url地址 :return: string """ # ...原创 2018-10-29 21:38:53 · 402 阅读 · 0 评论 -
SESSION 和 COOKIE 的区别及安全性
一,为什么session,cookie经常会有人提到做web开发的人基本上都会用session和cookie,但是仅仅只是会用,并不知道session和cookie的真正的工作原理,都只是凭着感觉来猜测。web开发者只要利用它们来完成工作就行了,所以每个人的理解基本都会有大同小异,我想这就是session,cookie经常会被讨论的原因。本文也是根据个人经验,以及个人所学,对session,c...转载 2018-09-19 17:24:19 · 3824 阅读 · 0 评论 -
selenium 使用的相关问题
一、浏览器驱动文件(如phantomjs.exe/chromedriver.exe)的自动读取 1、PhantomJS与chrome的区别: chrome不用说,就是chrome浏览器嘛,使用chromedriver.exe文件就是用来启动chrome浏览器的,当在程序中运行chromedriver.exe时会自动启动chrome浏览器(前提是电脑中已经安装了ch...转载 2018-11-06 19:40:26 · 114 阅读 · 0 评论 -
requests (第三方库)基于urllib3 使用更加方便
#!/usr/bin/env python# -*- coding: utf-8 -*-# requests 是一个用python语言写的第三方库,在使用的时候,需要手动安装(pip install requests)# 非常好用,基于urllib3import requests'''requests 请求的函数# requests.Request# requests.r...原创 2018-11-02 12:48:50 · 1171 阅读 · 0 评论 -
智联招聘爬虫
#!/usr/bin/env python# -*- coding: utf-8 -*-import jsonimport requestsfrom bs4 import BeautifulSoupimport urllib.parseurl = 'http://sou.zhaopin.com/jobs/searchresult.ashx?'headers = {'User...原创 2018-11-16 15:53:00 · 2658 阅读 · 0 评论 -
Python 字典(Dictionary)
字典是一种可变容器模型,且可存储任意类型对象。字典的每一个键值 key value 对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{ }中,格式如下所示:d = {key1 : value1, key2 : value2 }键是唯一性的,如果键有重复,最后的一个键值对会替换前面的,值不需要唯一。>>>dict = {'a': 1, 'b': ...原创 2018-11-08 21:01:26 · 158 阅读 · 0 评论 -
Python 知识结构图
分享几个Python的网址,大家一起进步! Python的知识结构图:http://lib.csdn.net/base/python/structure 生成器、lamda表达式及map、reduce、filter函数http://lib.csdn.net/article/python/1297 装饰器:http://lib.csdn.net/article/python...转载 2018-11-08 18:19:40 · 1216 阅读 · 0 评论 -
Python 装饰器的详细介绍
import timedef timer(parameter): def outer_wrapper(func): def wrapper(*args, **kwargs): if parameter == 'task1': start = time.time() func(*...转载 2018-11-08 18:01:25 · 202 阅读 · 0 评论 -
bs4 的使用方法
#!/usr/bin/env python# -*- coding: utf-8 -*-# bs4 是三方库,在调用的时候,要先在cmd中下载 pip install bs4import bs4from bs4 import BeautifulSoupcontent = '''<!DOCTYPE html><html lang="en"><head...原创 2018-11-07 21:49:33 · 2171 阅读 · 0 评论 -
os.path.splitext() 的使用方法
#!/usr/bin/env python# -*- coding: utf-8 -*-import urllibimport urllib.requestimport osimport requestsfrom lxml import etreeget_url = 'http://sc.chinaz.com/tupian/huangsetupian.html'head...原创 2018-11-07 17:35:25 · 6741 阅读 · 0 评论 -
使用pycharm对构建FormData格式替换的技巧
参考网址:https://www.cnblogs.com/thunderLL/p/6701374.html原创 2018-11-02 21:24:36 · 104 阅读 · 0 评论 -
requests( proxy | post | session ) 使用练习
import requestsimport osurl = 'http://pic.gooooal.com/images/100452/100452654.jpg'# proxies = {'http':'220.184.213.250:808'}# 私密代理ip = os.environ.get('proxyServer')user = os.environ.get('p...原创 2018-11-02 14:29:41 · 809 阅读 · 0 评论