自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 【Python timedelta日期区间+多线程】获取滑雪场雪票预约名额

北京某著名滑雪场在12/17就会迎来正式营业, 正式营业后的雪票种类可以说是多种多样,那么为了快捷获取各种雪票的价格及预约名额,这里用datetime获取日期区间+多线程来实现。import requests import csvimport datetimeimport threadingurl = 'https://65235638.12301.cc/co/Index_Product/getPriceAndStorageForManyDate/'通过验证发现cookie并不需要.

2021-12-15 14:11:12 664

原创 【Python 滑雪场预约名额自动爬取】

由于疫情原因,今年北京某著名滑雪场采取预约制。由于试营业期间票价非常实惠,可以说是一票难求,所以用python写个小程序自动爬取空余名额,结合crontab执行定时任务以及smtplib这个包可以实现每分钟自动爬取,并在指定日期有空位时立即自动发送邮件,是个抢位置利器 hhh眼看试营业即将结束,这里分享一下代码。其实整体也不难,主要通过devtool找到获取预约名额数据的api即可。import requests import csvimport datetime# autoemail是

2021-12-12 14:33:36 766

原创 【Python Crontab定时任务+Mac】

因为要获取某滑雪场的实时预约空位,所以需要定时执行任务。Mac M1使用crontab指令来实现。在terminla输入crontab -e 之后按 i 进入编辑模式。为了实现每分钟爬取一次,这里的命令如下。* * * * * python3 ski.py不过这样会报错 operation not permitted.经过一番查找,发现可以通过system preferences -> security & privacy -> Full Disk Acces.

2021-12-07 13:42:14 920

原创 【Python 协程Coroutine异步爬虫】爬取猫咪图片

多线程以及多进程往往能实现爬虫速度的大幅提升,不过协程作为一个更加轻量化的方式可以以更小的代价实现高并发异步爬虫,当io操作越多事,其优势愈加明显。在使用python的asyncio时,会遭遇需要调用已完成tasks的结果的情况,而实现的方法有两个,一个是add_done_callback(func())而另一个则是task.result()。这里使用第二种方法进行操作。import aiohttp import asyncio from lxml import etreeimport re

2021-12-04 21:43:35 407

原创 【Python 多线程vs协程】爬取西游记

为了有效的学习和加深对于线程和协程的认知,将同一个任务用不同思路呈现很有帮助。这里通过使用多线程以及协程两种方式对西游记的篇章内容进行爬取,来对比一下两者的耗时差异。首先,多线程爬取。这里没有限制并发量,在主函数中的for循环遍历pair,因为有100个p,因此实际上开辟了100个线程。import threading import requests import os import jsonurl = 'http://dushu.baidu.com/api/pc/getCata

2021-11-23 11:43:09 779

原创 【Scrapy框架 正则+Pipeline+Middleware+MySql】爬取全站租房信息

今天的scrapy项目难度升级一下,不仅要用到pipeline导出数据到mysql,还要通过middleware实现随机User-Agent。爬取目标网站为我爱我家terminal 中startproject以及genspider这里不赘述,有问题可以评论在下面。首先在item中声明爬取的item,这里我们抓取5个目标标题 链接 位置 价格 大小import scrapyclass WoaiwojiaItem(scrapy.Item): # define the f

2021-11-21 18:42:52 1038

原创 【Scrapy框架(一)】爬取豆瓣电影

爬虫入门之后一定要掌握的就是scrapy框架。这个框架不仅本身就是基于twisted进行异步爬取,而且还有很强的拓展性、灵活性,后期进行商业性质的爬取可以部署分布式爬取。scrapy框架核心部分不过四个spider settings pipeline items当然,在熟练使用后middleware也是要掌握的。今天用最简单的代码爬取一下豆瓣电影命令行startproject 以及genspider这里不做赘述,直接进入爬虫project文件中写代码。首先在items..

2021-11-20 20:50:15 2123

原创 【Python 多线程+Selenium+PyQuery+正则】爬取留学咨询服务信息

很多面临留学申请的小伙伴可能在寻求学长学姐留学咨询服务的时候一定好奇相关服务的价格等等信息,那么今天就来爬取一下相关内容。程序分为【两个部分】。首先爬取导师详情页url,之后解析详情页内容。由于此网站索引页的html不包含导师的详情页信息(貌似使用了js),因此首先利用Selenium爬取导师的相对url。导入模块import requests from selenium import webdriver import timefrom pyquery import PyQuery

2021-11-19 20:52:27 580

原创 【Python 多线程+ip代理+正则+pyquery】爬取链家二手房信息

现在的lj已经不再公示房屋交易记录,所以只能爬一爬房屋基本信息。用到的模块还是挺多的,一波导入import requests import randomfrom pyquery import PyQuery as pq import re import pymysql from pymysql.converters import escape_stringimport threading import time#自行查找uauas = []ua = random.choic

2021-11-12 23:21:05 3584 2

原创 【Python 多线程+IP代理+MySQL】爬取b某站

import requests import json import random import pymysql import threading#自行查找user agentsuas = []ua = random.choice(uas)#自行查找代理 格式 'ip:port'proxies_list = []def get_proxies(): #设置需要验证密码的ip代理 proxy = f'账号:密码@{random.choice(proxies_list)}' .

2021-11-07 23:54:52 1608

原创 【Python Selenium】爬取某boss当地职位信息

不得不说现在的招聘网站反爬做的相当出色,不过利用自动化处理模块selenium依然可以实现工作岗位信息的爬取,尽管爬取效率较低,不过相对人工手动数据依然非常高效。首先来明确我们要爬取的信息。岗位名称 岗位薪资 岗位地区 学历要求 公司名称 公司标签当然如果想爬取更多信息也可以自行进行选择。首先import模块from selenium import webdriver import time import randomfrom lxml import etree

2021-11-05 22:12:54 389

原创 【Python多线程】听力

导入模块import requestsimport randomfrom pyquery import PyQuery as pqimport reimport threadingimport os设置ua,这里不赘述。这里每一个选项都是一个列表页,首先我们获取所有列表页的url。这里用pyquery找到所有a节点后,items()生成器,之后用列表解析直接返回一个列表。def get_page(): url = 'https://top.zhan.com/toef.

2021-10-28 20:47:05 138

原创 【极简代码】Python Plotly Sunburst可视化全国Used Mercedes Benz

可能有人会好奇为什么前面有了精简代码,这里还有个极简代码呢?细心的读者可能发现了,在上篇中,要人力分析数据,并手动创建多个列表才能进行计算,而本次的代码可以几乎跳过这一步,几乎通用而省略掉繁杂的重复工作。import pandas as pdimport numpy as npimport plotly.express as pximport plotlydata = pd.read_csv('benchi_more.csv')data_sorted = data.sort_values

2021-10-23 18:55:56 710 1

原创 【精简代码】Python Plotly Sunburst可视化全国Used BMW信息

import csvimport pandas as pdimport numpy as npimport plotly.express as pximport plotly整理数据,并建立相应列表。这里重点是先讲两个列表zip,之后再转为listdata = pd.read_csv('baoma_more.csv')data_sorted = data.sort_values(by=['Name'],ascending=False)models = data_sorted['Na..

2021-10-23 13:51:23 342

原创 【接前篇】Python Plotly数据可视化全国Used BMW

import pandas as pdimport numpy as npimport plotly.express as pximport plotlydata = pd.read_csv('baoma_more.csv')data_sorted = data.sort_values(by=['Name'])models = data_sorted['Name']bmw_1 = []bmw_2 = []bmw_3 = [] bmw_4 = []bmw_5 = [].....

2021-10-23 00:10:49 127

原创 【Python多线程】爬取全国USED BMW信息

首先倒入模块,threading多线程可以大幅提升速度,不过记得限制并发数量。import requests import reimport threading import randomimport csv请求头设置这里不赘述,可在前面文章找到。通过分析得知,我们需要请求列表页及列表页中各个详情页的车辆信息。因为首页的url不符合其余页面的规律,所以单独提出来定义一个get first pagedef get_first_page(): url = 'https://s.

2021-10-21 12:55:21 142

原创 【接上篇】导出csv中图片链接爬取雪板图片

import requests import csvimport randomimport os首先创建文件存储路径path = 'ski_img'if not os.path.exists(path): os.mkdir(path)定义存储图片函数,传入两个参数,雪板型号以及图片url。这里UA可以替换自己的可用ua。def save_img(model, img_url): try: response = requests.get(url=img_url, he...

2021-10-19 22:34:04 218

原创 【雪季将至,各大品牌滑雪板价格爬取】

雪季将至,各大品牌滑雪双板价格是多少呢?哪个品牌降价活动最给力?今天我们来爬取一下。首先倒入库import requests import reimport csv设置请求头这里不再赘述打开csv文件,明确表头。这里我们将要收集滑雪板的品牌、型号、厂商价、优惠价、以及图片链接。f = open('ski_info.csv','w', encoding='utf-8')csv_writer = csv.writer(f)csv_writer.writerow(['Brand.

2021-10-19 10:28:50 140

转载 Python多线程Semaphore与BoundedSemaphore区别

ASemaphorecan be released more times than it's acquired, and that will raise its counter above the starting value. ABoundedSemaphorecan'tbe raised above the starting value.# Usually, you create a Semaphore that will allow a certain number of thread...

2021-10-18 21:50:08 248

原创 Python爬取托福阅读练习题

相信考托的老铁们都知道题目的可贵,在这里跟大家分享一下托福tpo爬虫,这里爬取的是阅读。首先设置请求头。ua自行在chrome开发者复制粘贴,这里不赘述。headers = { 'Host':'top.zhan.com', 'Referer':'http://top.zhan.com/toefl/speak/task12.html', 'User-Agent':'',}接下来,定义请求页面函数。第一个参数是题目总页面数值,第二个参数是小题分页面数值。def get_pag...

2021-10-10 22:36:58 231

原创 Mac M1 环境下安装tesserocr Python 3.9

Using legacy 'setup.py install' for tesserocr, since package 'wheel' is not installed.Installing collected packages: tesserocr Running setup.py install for tesserocr ... error ERROR: Command errored out with exit status 1: command: /Library/.

2021-10-09 12:46:14 1101 5

原创 Mac环境安装MongoDb

Install MongoDB Community Edition on macOS — MongoDB Manual请务必参照以上官方链接,往上很多方法都是老旧方法,肥肠误导人。官方为准????

2021-10-08 22:03:46 46

原创 python利用Ajax爬取今日头条街拍

相信各位学习爬虫的老铁们一定看过崔大佬的爬虫教学。在第六章利用Ajax爬取今日头条街拍图片这部分,由于网站已变更,会发现书中具体代码无法执行。本人作为爬虫新手,用了3小时时间自行摸索该部分,并对相应内容进行调整,最终【成功爬取】,在这里跟大家分享一下我踏过的各种大坑。首先模块倒入import requests import urllib.parsefrom urllib.parse import urlencodeimport jsonimport osfrom hashlib impo

2021-10-07 12:33:00 1106

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除