Python 爬取1688货源重量,自动发邮件到指定邮箱(qq),设置定时运行程序
1 # -*- coding: utf-8 -*-
2 # @Time : 2020/7/6 13:46
3 # @Author : Chunfang
4 # @Email : 3470959534@qq.com
5 # @File : test02.py
6 # @Software: PyCharm
7
8 import os,xlrd,time
9 import re
10 import datetime
11 from openpyxl import load_workbook
12 from selenium import webdriver
13 from time import sleep
14 from selenium.webdriver.chrome.service import Service
15
16 def down_data():
17 start = datetime.datetime.now()
18 filepath2 = 'SKU-URL-weight.xlsx' # 新建表格,将唯一的sku,url写入
19
20 wb2 = load_workbook(filepath2)
21 ws2 = wb2.worksheets[0]
22
23 def down_data(url): # 获取每个链接的数据
24 # 加载浏览器带表头数据爬虫
25 c_service = Service(r'D:\Python\Scripts\chromedriver.exe')
26 c_service.command_line_args()
27 c_service.start()
28 profile_directory = r'--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data'
29 option = webdriver.ChromeOptions()
30 option.add_argument(profile_directory)
31 driver = webdriver.Chrome(options=option)
32 driver.implicitly_wait(3)
33 driver.get(url)
34 sleep(3)
35 data = driver.page_source
36 sleep(2)
37 driver.quit()
38 sleep(2)
39 c_service.stop()
40 return data
41 def station(data):
42 busy = re.findall('<div class="tips" style=".*?<p>.*?(亲.*?回来).*?</p>', data, re.S)
43 # print(busy)
44 error_404 = re.findall('h3 class="title">.*?<em>(抱歉.*?)</em>', data, re.S)
45 # print(error_404)
46 pro_weight = re.findall('<span>.*?<b>.*?重量</b>.*?<em>(.*?)</em>', data, re.S)
47 # print(pro_weight)
48 right = re.findall('title="点击此按钮.*?rel="nofollow"><span>(.*?订购)</span></a>', data, re.S)
49 # print(right)
50 stations.append(busy)
51 stations.append(error_404)
52 stations.append(pro_weight)
53 stations.append(right)
54
55 for i in range(16635,ws2.max_row+1):
56 print('第' + str(i) + '个sku:' + str(ws2.cell(i, 1).value))
57 stations = []
58 data=down_data(ws2.cell(i,2).value)
59 # print(data)
60 station(data)
61 while len(stations[0])!=0:#没有加载出来
62 stations = []
63 data = down_data(ws2.cell(i, 2).value)
64 station(data)
65 print(stations)
66 if len(stations[1])==0:#判断404
67 if len(stations[2])==0:#判断重量
68 if len(stations[3])==0:#判断产品是否有货,可订购
69 ws2.cell(i, 3).value = '产品下架'
70 else:
71 ws2.cell(i,3).value = '产品有货,没有标注重量'
72 else:
73 ws2.cell(i, 3).value = stations[2][1]#添加重量
74 else:
75 ws2.cell(i,3).value = stations[1][0]#抱歉404
76 print(stations)
77
78 wb2.save(filepath2)
79
80 end = datetime.datetime.now()
81 print('Running time: %s Seconds'%(end-start))
82
83 #发邮件给对方邮箱
84 import smtplib
85 from email.mime.text import MIMEText
86 from email.mime.multipart import MIMEMultipart
87 from email.mime.image import MIMEImage
88 from email.mime.application import MIMEApplication
89
90 #设置服务器所需信息
91 fromaddr ='3470959534@qq.com'
92 password = '验证码'#qq的邮箱验证码
93 toaddrs = ['3470959534@qq.com','1725714926@qq.com']
94
95 #邮件内容设置
96 message = MIMEText('hello! 这是跑货源结果,请查收','plain','utf-8')
97 message['Subject']='测试邮件'
98
99 excel_file =filepath2
100 excel_apart = MIMEApplication(open(excel_file,'rb').read())
101 excel_apart.add_header('Content-Disposition','atttachment',filename=excel_file)
102
103 m = MIMEMultipart()
104 m.attach(message)
105 m.attach(excel_apart)
106
107 try:
108 server = smtplib.SMTP('smtp.qq.com')
109 server.login(fromaddr,password)
110 server.sendmail(fromaddr,toaddrs,m.as_string(),)
111 print('success')
112 server.quit()
113 except smtplib.SMTPException as e:
114 print('error:',e)
115
116 down_data()
117 #设置时间跑店小秘货源
118 # while True:
119 # time_now = time.strftime('%H:%M:%S',time.localtime())
120 #
121 # if time_now =="20:00:10":
122 # down_data()
123 # # print('Hello')
124 # subject = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())+'定时发送测试'
125 # print(subject)
126 # time.sleep(2)
Python 爬取1688货源重量,自动发邮件到指定邮箱(qq),设置定时运行程序的更多相关文章
- python爬取网站页面时,部分标签无指定属性而报错
在写爬取页面a标签下href属性的时候,有这样一个问题,如果a标签下没有href这个属性则会报错,如下: 百度了有师傅用正则匹配的,方法感觉都不怎么好,查了BeautifulSoup的官方文档,发现一 ...
- python爬取免费优质IP归属地查询接口
python爬取免费优质IP归属地查询接口 具体不表,我今天要做的工作就是: 需要将数据库中大量ip查询出起归属地 刚开始感觉好简单啊,毕竟只需要从百度找个免费接口然后来个python脚本跑一晚上就o ...
- 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)
由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...
- python爬取人民币汇率中间价
python爬取人民币汇率中间价,从最权威的网站中国外汇交易中心. 首先找到相关网页,解析链接,这中间需要经验和耐心,在此不多说. 以人民币兑美元的汇率为例(CNY/USD),脚本详情如下: wind ...
- 萌新学习Python爬取B站弹幕+R语言分词demo说明
代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...
- Python爬取招聘信息,并且存储到MySQL数据库中
前面一篇文章主要讲述,如何通过Python爬取招聘信息,且爬取的日期为前一天的,同时将爬取的内容保存到数据库中:这篇文章主要讲述如何将python文件压缩成exe可执行文件,供后面的操作. 这系列文章 ...
- Python爬取视频指南
摘自:https://www.jianshu.com/p/9ca86becd86d 前言 前两天尔羽说让我爬一下菜鸟窝的教程视频,这次就跟大家来说说Python爬取视频的经验 正文 https://w ...
- Python爬取网页信息
Python爬取网页信息的步骤 以爬取英文名字网站(https://nameberry.com/)中每个名字的评论内容,包括英文名,用户名,评论的时间和评论的内容为例. 1.确认网址 在浏览器中输入初 ...
- Python 爬取 热词并进行分类数据分析-[解释修复+热词引用]
日期:2020.02.02 博客期:141 星期日 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...
随机推荐
- J20航模遥控器开源项目系列教程(七)PPM输出 | 关于按键版本和旋转编码器版本的兼容说明、布局建议 | 关于MINI版PCB的兼容说明
我们的开源宗旨:自由 协调 开放 合作 共享 拥抱开源,丰富国内开源生态,开展多人运动,欢迎加入我们哈~ 和一群志同道合的人,做自己所热爱的事! 项目开源地址:https://github.com/J ...
- [bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业
[bzoj3809]Gty的二逼妹子序列/[bzoj3236][Ahoi2013]作业 bzoj bzoj 题目大意:一个序列,m个询问在$[l,r]$区间的$[x,y]$范围内的数的个数/种类. ...
- 在idea中新建完springboot项目的时候遇到问题(右键没有class选择;控制台报错:Could not transfer artifact org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.60 from/to central ....)
一.在idea中新建完springboot项目的时候遇到问题 问题1:右键没有class选择 解决:之所以会如此,是因为项目还没完成创建完成,解决:只需等等即可,等到完全创建完成即可 问题2(报tom ...
- Myql 中的事务回滚机制概述 ?
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个 不可分割的工作单位,事务回滚是指将该事务已经完成的对数据库的更新操作撤 销. 要同时修改数据库中两个不同表时,如果它们不是一个事 ...
- 深入理解Java虚拟机-内存分配与回收策略
一.内存分配策略 新生代中98%的对象都是"朝生夕死"的,所以并不需要按照1:1的比例来划分内存空间,而是将内存(新生代内存)分为一块较大的Eden(伊甸园)空间和两块较小的Sur ...
- ubuntu开启emqx/nginx/uwsgi自启动服务
一.emqx开机自启 a.首先在执行如下命令 vi /lib/systemd/system/emqx.service 创建了emqx.service文件然后在文件中写入如下内容 [Unit] Des ...
- Vue中data数据,使用v-model属性绑定第三方插件(例如Jquery的日期插件)无法自动更新
问题原因就是html结合Vue使用,但是项目又使用了第三方日期控件,这会导致日期值选择形式的更新后,而Vue管理的对应v-model字段并未自动更新,这是因为日期控件未触发Input事件,需要我们在值 ...
- 运筹学之"概率"和"累计概率"和"谁随机数"
概率 = 2/50 = 0.2 累计概率 = 上个概率加本次概率 案例1 概率=销量天数 / 天数 = 2 /100 = 0.02 累计概率 = 上个概率加本次概率 = 0.02 +0.03 = 0. ...
- 关于css布局、居中的问题以及一些小技巧
CSS的两种经典布局 左右布局 一栏定宽,一栏自适应 <!-- html --> <div class="left">定宽</div> < ...
- html 不常用标签介绍
文本元素 <wbr> 如果单词太长,或者您担心浏览器会在错误的位置换行,那么您可以使用 <wbr> 元素来添加 Word Break Opportunity(单词换行时机).英 ...