
Python
Python
qq_41622603
这个作者很懒,什么都没留下…
展开
-
python使用yagmail发送邮件
1.获取邮箱的授权码(1)登录上qq邮箱,左上角点击设置(2)点击帐户(3)拉到中间偏下一点的位置,开启POP3/SMTP服务(4)根据提示发送短信,发送完成点击我已发送(5)红色方框就是授权码了,复制下来2.连接邮件服务器imap = 'fcdbtiubeecojbci'#qq邮箱授权码mail_server = "smtp.qq.com"# 连接邮件服务器yag = yagmail.SMTP(user='1494...原创 2020-06-17 10:45:58 · 1420 阅读 · 0 评论 -
Scrapy系列:图片下载(附完整代码)
案例爬取的目标是摄图网图片,根据图片的分类爬取图片并保存(原图和缩略图)地址:http://699pic.com/photo/第一步:使用Item封装数据注意属性名是固定的,如果需要改属性名,要在settings.py中设置(怎么设置这里就不写了)第二步:编写解析函数一共有两个解析函数,一个是获取并请求到每个主题对应的详情页的函数,一个是在详情页里获取每张图片的路径1.获取并请求到每个主题对应的详情页2.获取所有图片的路径,并交给ImagesPipelin..原创 2020-05-18 23:05:41 · 1048 阅读 · 0 评论 -
Scrapy系列:文件下载(附完整代码)
案例爬取的目标是seaborn案例的源文件地址:http://seaborn.pydata.org/examples/index.html点击图片进去往下拉一点,就会看到下载的目标链接,通过这个链接把文件下载第一步:使用Item封装数据注意属性名是固定的,如果需要改属性名,要在settings.py中设置(怎么设置这里就不写了)第二步:编写解析函数一共有两个解析函数,一个是获取并请求到详情页的函数,一个是在详情页里获取每个案例的下载路径1.获取详情页的URL并..原创 2020-05-18 22:01:10 · 1185 阅读 · 0 评论 -
Scrapy系列十三:实现伪装成随机浏览器
本文代码基于系列八代码的基础上修改1.安装fake-useragent库这个库能随机生成UserAgentpip install fake-useragent2.编写Middleware3.去掉原来的代理原本我是在headers里传入UserAgent4.Settings.py文件把ROBOTSTXT_OBEY设置为True启动测...原创 2020-05-06 23:54:07 · 1071 阅读 · 0 评论 -
Scrapy系列:实现自动登录(绕开验证码),爬取起点中文网——我的书架
首先要注册一个起点中文网账号,并通过Chrome浏览器登录上去,访问我的书架页面,如下图1.安装browsercookie和依赖库pip install browsercookiepip install pycrptodome2.items.py里封装需要获取的数据*3.获取浏览器中起点中文网的cookie(1)找到需要的cookie的name...原创 2020-05-05 11:09:51 · 1445 阅读 · 0 评论 -
python使用selenium打开部分页面无法获取数据(Chrome正受到自动检测软件的控制)
用selenium打开页面的时候发现动态数据获取不到,如下图,会发现"Chrome正受到自动检测软件的控制",此时会获取不到数据所以我们要把"Chrome正受到自动检测软件的控制"这个字眼去掉声明谷歌浏览器前加入这三行代码就OK了...原创 2020-04-22 13:15:54 · 2921 阅读 · 4 评论 -
Scrapy系列—豆瓣网:爬取动态网页(异步加载数据)
豆瓣网的数据都是通过ajax异步加载上去的,所以我们按照xpath的方式提取数据是提取不完整的第一步:确定爬取的URL并找到参数规律1.进入到爬取的目标界面进入到豆瓣网,点击分类,会显示出下图的界面2.找到Ajax的请求信息打开chrome的开发者工具刷新下界面选中Network→XHR,然后就会看到ajax请求的url和参数了3.分析数据结构...原创 2020-04-14 22:54:01 · 2330 阅读 · 1 评论 -
Scrapy系列十二:把爬取到的数据保存到redis数据库
本文代码基于系列八代码的基础上修改1.安装redispip install -U redis==2.10.62.配置数据库连接信息在settings.py文件加入数据库连接,属性名没有规定可以随便起3.获取数据库配置,连接数据库4.执行数据库操作5.关闭客户端连接6.加入到数据清洗的管道完整代码...原创 2020-04-10 15:38:51 · 2565 阅读 · 0 评论 -
python操作redis
1.安装redispip install -U redis==2.10.62.导入redis模块3.连接redis有两种方式:1是通过StrictRedis直接连接redis,2是通过连接池连接redis4.操作redis(1)字符串操作结果:(2)列表操作结果:(3)无序集合操作(4)散...原创 2020-04-10 15:19:05 · 318 阅读 · 0 评论 -
Scrapy系列十一:把爬取到的数据保存到mongodb数据库
本文代码基于系列八代码的基础上修改1.安装pymongo命令行执行:pip install pymongo2.配置数据库连接信息在settings.py文件加入数据库连接,属性名没有规定可以随便起3.获取数据库配置,连接数据库4.执行数据库操作5.关闭客户端连接6.加入到数据清洗的管道完整代码c...原创 2020-04-09 11:14:33 · 3445 阅读 · 0 评论 -
python操作mongodb
1.安装pymongopip install pymongo2.导入pymongo3.连接MongoDB数据库,指定库和集合4.执行增删改查操作(1)插入单条和多条数据执行结果:(2)查询单条和多条数据执行结果:(3)更新单条和多条数据执行结果:(4)删除单条和多条数据执行结...原创 2020-04-08 17:16:27 · 141 阅读 · 0 评论 -
python操作Mysql数据库
1.安装mysqlclient:pip installmysqlclient2.导入MySQLdb3.创建连接4.获取游标5.编写查询语句和参数6.执行查询7.接收结果8.(可选)执行提交操作,只有在执行增删改操作才需要执行提交9.关闭游标和断开连接#导入MySQLdb模块import MySQLdb#创建连接db_conn = MySQLdb...原创 2020-04-08 09:17:58 · 120 阅读 · 0 评论 -
Scrapy系列十:把爬取到的数据保存到mysql数据库
本文代码基于系列八代码的基础上修改1.安装mysqlclient命令行执行:pip install mysqlclient2.配置数据库连接信息在settings.py文件加入数据库连接,属性名没有规定可以随便起3.获取数据库配置,连接数据库4.执行数据库操作5.提交和关闭操作6.加入到数据清洗的管道...原创 2020-04-07 16:33:37 · 516 阅读 · 0 评论 -
Scrapy系列九:使用.py文件执行爬虫程序
执行爬虫程序时是要通过命令行执行,这样有点麻烦,Scrapy提供一个cmdline库可以方便运行爬虫程序。1.在项目根目录下新建start.py文件2.导入cmdline库并定义需要执行的命令3.运行直接右键run 'start' 就可以运行起来了...原创 2020-04-06 23:04:24 · 1398 阅读 · 0 评论 -
Scrapy系列八:使用Item Pipeline处理数据,并将数据保存到其他类型文件
用Pipeline的目的1.清理数据。2.验证数据的有效性。3.查重并丢弃。4.将数据按照自定义的格式存储到文件中。5.将数据保存到数据库中。6.欢迎补充...原创 2020-04-01 11:49:59 · 1052 阅读 · 0 评论 -
python实现微信QQ消息多次频繁发送
实现逻辑:1.先把需要发送的内容写入到剪切板2.模拟按键Ctrl+V粘贴3.根据自己实际情况选择按Enter或者Ctrl+Enter发送消息(设置sendWithCtrl参数),注意,要先按Ctrl再按Enter这个逻辑不能错import win32clipboard as wimport win32conimport win32apiimport timedef se...原创 2020-04-04 20:37:07 · 4724 阅读 · 1 评论 -
Scrapy系列七:数据的输出输入处理器
使用输出处理器和输入处理器目的:将XPath或者CSS选择器提取出来的数据做进一步的处理,如字符串转换,去空格,提取数字,格式化等操作。本文基于系列六代码的基础上修改1.定义输入函数在items.py文件定义字符串处理函数我这里做了个简单的字符串转换的输入函数2.给字段绑定输出处理器或者输入处理器函数处理器函数可以绑定在输出或者输入函数,这个根据自...原创 2020-03-30 11:35:38 · 567 阅读 · 0 评论 -
Scrapy系列六:使用ItemLoader填充容器
使用ItemLoader填充容器目的:当项目很大,提取的字段数以百计时,数据的提取规则也会越来越多,然后对提取到的数据做转换处理,代码会变得非常冗余。使用ItemLoader填充容器可以配置Item中各个字段的提取规则,并通过函数分析元素数据,最后对Item字段赋值。本文基于系列五代码的基础上修改1.导入ItemLoader类在实现爬虫的模块里导入ItemLoade...原创 2020-03-29 20:36:46 · 178 阅读 · 0 评论 -
Scrapy系列五:使用Item封装数据
使用Item类解决的问题:1.字段名拼写容易出错且无法检测到这些错误2.返回的数据类型无法确保一致性3.不便于将数据传递给其他的组件本文基于系列四代码的基础上修改1.定义Item生成scrapy项目的时候会自动生成items.py文件,在类里定义好数据结构2.定义Field(1)导入模块在实现爬虫的模块里导入Items模块(2)将爬...原创 2020-03-29 18:53:33 · 310 阅读 · 0 评论 -
Scrapy系列四:多页数据爬取
本文基于系列二代码的基础上修改,思路:在解析函数qidian_parse中,提取完本页数据并提交给引擎后,提取到下一页的URL地址,使用这个URL地址生成一个新的Request对象,再提交给引擎,引擎重新执行解析函数,如此递进,直到最后一页主要步骤如下1.定义一个保存当前页数的变量2.使用递归实现自动翻页完整代码from scrapy import R...原创 2020-03-29 17:19:34 · 2678 阅读 · 0 评论 -
Scrapy系列三:使用CSS表达式解析页面数据
说明:CSS表达式不能取代XPath,CSS表达式比XPath简洁,但是功能不如XPath,大多作为XPath的辅助红色箭头为我们获取的目标主要代码:第一个css表达式 [class='book-mid-info']:选中所有class为book-mid-info的元素第二个css表达式 h4>a::text:选中h4标签的子元素a的文本内容第三个和第...原创 2020-03-29 14:56:05 · 521 阅读 · 0 评论 -
Scrapy系列二:重写start_reuests()方法,伪装和重设解析数据回调函数
为什么要伪装:因为有很多网站是拒绝爬虫访问,所以要使用Request对象把爬虫伪装成浏览器访问重设解析数据回调函数:在系列一文章里面我们把爬虫的数据解析的具体实现写在了Scrapy默认的parse方法里,如果要指定别的数据解析回调函数,则需要指定新的解析数据的回调函数重写start_requests()方法在系列一的基础上修改qidian_headers,User-Ag...原创 2020-03-28 23:37:30 · 1622 阅读 · 0 评论 -
Scrapy系列一:第一个Scrapy项目
1.安装Scrapy使用的是Anaconda安装Scrapy2.配置Scrapy环境变量讲Anaconda的Scrapy文件夹加入到Path环境变量中原创 2020-03-28 22:28:43 · 349 阅读 · 0 评论 -
Python类继承
ExamoleClassChild继承了ExamoleClass类调用父类方法和属性使用self关键词调用原创 2020-03-26 20:00:08 · 75 阅读 · 0 评论