风变编程笔记(二)Python爬虫精进牡蛎君

因为百度很好地遵守了淘宝网的robots.txt协议,自然,你在百度中也查不到淘宝网的具体商品信息了

【网页头】中的编码是没办法在网页中直接被看到的,标签页的内容也不属于网页的正文而元素中,即【网页体】,就是那些能看到的显示在网页中的内容了

网页体中依次有四个内容:

元素代表一级标题,对应网页中的“豆瓣2019年度电影榜单”;

元素代表三级标题,对应网页中的“评分最高华语电影”;

元素代表二级标题,对应网页中的“《少年的你》”;然后是

元素,对应网页中“根据玖月晞小说......的故事”这一整段文本5.属性HTML标签可以通过设置【属性】来为HTML元素描述更多的信息

text获取到的是该标签内的纯文本信息,即便是在它的子标签内,也能拿得到。但提取属性的值,只能提取该标签本身的在爬豆瓣的时候遇到status_code为418的情况,解决办法是在request.get()时加个头安装fake-useragent模块,在终端输入pip3installfake-useragent

importrequestsfromfake_useragentimportUserAgentua=UserAgent()#实例化headers={'User-Agent':ua.random}#也可以是ua.ie,ua.chrome,ua.safari等res=requests.get(url,headers=headers)quote()实现url编码↓

fromurllib.requestimportquote,unquote#quote()函数,可以把内容转为标准的url格式,作为网址的一部分打开print(quote('海边的卡夫卡'))#》》E6%B5%B7%E8%BE%B9%E7%9A%84%E5%8D%A1%E5%A4%AB%E5%8D%A1#unquote()函数,可以转换回编码前数据print(unquote('%E6%B5%B7%E8%BE%B9%E7%9A%84%E5%8D%A1%E5%A4%AB%E5%8D%A1'))#》》海边的卡夫卡也可以↓

可以看到变化的是这个p参数,第1页XHR的参数p值为1,第2、3页XHR的参数p值则为2和3,说明在这个client_search_cp..的请求中,代表页码的参数是p(page的缩写)通过循环变更链接中的p参数就可以拿到更多歌曲信息,但这样的代码不够优雅事实上,requests模块里的requests.get()提供了一个参数叫params,可以用字典的形式,把参数传进去所以可以把QueryStringParameters里的内容,直接复制下来,封装为一个字典,传递给params。只是有一点要特别注意:要给他们打引号,让它们变字符串

a='你\\n好\\n么\\n'b=a.replace('\\n','\n')print(a)#》》你\n好\n么\nprint(b)#》》你#》》好#》》么replace()是字符串对象的一个方法,它的意思是,把第一个参数的字符串用第二个参数的字符串替代

常用的存储数据的方式有两种——存储成csv格式文件、存储成Excel文件csv是一种字符串文件的格式,它组织数据的语法就是在字符串之间加分隔符——行与行之间是加换行符,同行字符之间是加逗号分隔它可以用任意的文本编辑器打开(如记事本),也可以用Excel打开,还可以通过Excel把文件另存为csv格式(因为Excel支持csv格式文件)

一个Excel文档也称为一个工作薄(workbook),每个工作薄里可以有多个工作表(worksheet),当前打开的工作表又叫活动表每个工作表里有行和列,特定的行与列相交的方格称为单元格(cell),比如上图第A列和第1行相交的方格可以直接表示为A1单元格openpyxl模块需要安装,mac电脑在终端输入命令:pip3installopenpyxl

Excel读取↓

获取到了字符串格式的网页源代码之后,就可以用BeautifulSoup解析和提取数据了4.自动操作浏览器

1.schedule通过第三方库schedule实现定时功能标准库一般意味着最原始最基础的功能,第三方库很多是去调用标准库中封装好了的操作函数。比如schedule,就是用time和datetime来实现的对于定时功能,time和datetime当然能实现,但操作逻辑会相对复杂,而schedule可以直接解决定时功能,代码比较简单schedule需要先安装,mac电脑在终端输入:pip3installschedule

importscheduleimporttimedefjob():print("I'mworking...")schedule.every(10).minutes.do(job)#部署每10分钟执行一次job()函数的任务schedule.every().hour.do(job)#部署每×小时执行一次job()函数的任务schedule.every().day.at("10:30").do(job)#部署在每天的10:30执行job()函数的任务schedule.every().monday.do(job)#部署每个星期一执行job()函数的任务schedule.every().wednesday.at("13:15").do(job)#部署每周三的13:15执行函数的任务whileTrue:schedule.run_pending()time.sleep(1)2.定时发送天气情况

importscrapyimportbs4导入scrapy是待会要用创建类的方式写这个爬虫,所创建的类将直接继承scrapy中的scrapy.Spider类。这样,有许多好用属性和方法,就能够直接使用在Scrapy中,每个爬虫的代码结构基本都如下所示↓

importscrapy#导入scrapyclassDoubanItem(scrapy.Item):#定义一个类DoubanItem,它继承自scrapy.Itemtitle=scrapy.Field()#定义书名的数据属性publish=scrapy.Field()#定义出版信息的数据属性score=scrapy.Field()#定义评分的数据属性导入了scrapy,目的是,等会所创建的类将直接继承scrapy中的scrapy.Item类。这样,有许多好用属性和方法,就能够直接使用。比如到后面,引擎能将item类的对象发给ItemPipeline(数据管道)处理然后定义了一个DoubanItem类,它继承自scrapy.Item类之后的代码是定义了书名、出版信息和评分三种数据。scrapy.Field()这句代码实现的是,让数据能以类似字典的形式记录。举例看下↓

importscrapy#导入scrapyclassDoubanItem(scrapy.Item):#定义一个类DoubanItem,它继承自scrapy.Itemtitle=scrapy.Field()#定义书名的数据属性publish=scrapy.Field()#定义出版信息的数据属性score=scrapy.Field()#定义评分的数据属性book=DoubanItem()#实例化一个DoubanItem对象book['title']='海边的卡夫卡'book['publish']='[日]村上春树/林少华/上海译文出版社/2003'book['score']='8.1'print(book)print(type(book))#》》{'publish':'[日]村上春树/林少华/上海译文出版社/2003',#》》'score':'8.1',#》》'title':'海边的卡夫卡'}#》》会看到打印出来的结果的确和字典非常相像,但它却并不是dict,它的数据类型是DoubanItem,属于“自定义的Python字典”。可以利用类似上述代码的样式,去重新写top250.py

importscrapyclassJobuiItem(scrapy.Item):#定义了一个继承自scrapy.Item的JobuiItem类company=scrapy.Field()#定义公司名称的数据属性position=scrapy.Field()#定义职位名称的数据属性address=scrapy.Field()#定义工作地点的数据属性detail=scrapy.Field()#定义招聘要求的数据属性5.创建和编写spiders文件在spiders文件夹下创建爬虫文件,命名为jobui_jobs.py在Scrapy里,获取网页源代码这件事儿,会由引擎分配给下载器去做,不需要自己处理。之所以要构造新的requests对象,是为了告诉引擎,新的请求需要传入什么参数,这样才能让引擎拿到的是正确requests对象,交给下载器处理构造了新的requests对象,就得定义与之匹配的用来处理response的新方法。这样才能提取出想要的招聘信息的数据

FEED_URI='./storage/data/%(name)s.csv'FEED_FORMAT='CSV'FEED_EXPORT_ENCODING='utf-8'FEED_URI是导出文件的路径。'./storage/data/%(name)s.csv',就是把存储的文件放到与scrapy.cfg文件同级的storage文件夹的data子文件夹里FEED_FORMAT是导出数据格式,写CSV就能得到CSV格式FEED_EXPORT_ENCODING是导出文件编码,utf-8是用在mac电脑上的编码格式,写ansi是一种在windows上的编码格式存储成Excel文件的方法,需要先在settings.py里设置启用ITEM_PIPELINES,设置方法只要取消ITEM_PIPELINES的注释(删掉#)

THE END
1.掌握小红书食物命名秘籍,创意独特,吸引万千粉丝关注小红书食物名字怎么取 1、如“叶叶香”、“鑫源茶”等,叶叶香这个名字寓意每一片茶叶都散发着浓郁的香气,适合作为养生茶的品牌名,鑫源茶则蕴含着生意兴隆、源源不断的销量,也适合用作养生茶的命名。 2、结合个人名字、兴趣或专业领域:小野风味”、“设计新星”、“摄影小哥哥”等,这样的名字能凸显个人特色,让人一http://koc.jk393.com/38b81D8a55B0.html
2.高档餐厅菜品名称高档餐厅菜品名称怎么取高档餐厅菜品名称-高档餐厅菜品名称怎么取 高档餐厅菜品名称: 品味奢华,享受美味 在高档餐厅,品味奢华,享受美味,是一件令人愉悦的事情。这些餐厅通常提供精美的菜肴,味道浓郁,口感细腻,让您的味蕾得到充分的满足。在这里,您可以品尝到各种高级食材,如鱼翅、熊掌、鳄鱼肉等,这些食材的品质和味道都值得我们称之为奢华。http://coffee.cn/xican/post/300592.html
3.探究家庭饮食文化30种常见家常菜的分析与研究在中国,餐桌上不仅是身体的补给,也是情感和文化交流的重要场所。家常菜作为日常饮食中不可或缺的一部分,它们不仅满足了人们对美味、健康食品的需求,还承载着丰富的情感和深厚的文化底蕴。本文旨在探讨30种最常吃的家常菜名称及其背后的意义。 家庭饮食文化概述 https://www.chuutacua.cn/zheng-ce-fa-gui/838572.html
4.美食清单的魅力与挑战一串令人垂涎的佳肴在厨房里,一个美食清单不仅仅是一份购物单,它承载着对美味生活的渴望和对未来餐桌上的期待。它可能是出于日常需要,也可能是为了某个特别的场合,一长串菜名如同绘卷般展开,每一道菜都蕴含着不同的故事和情感。 首先,编制一个美食清单是一项艺术创作。每位厨师或家庭主妇都会根据自己的口味偏好、季节变化以及家人成员https://www.jxacmyfaf.cn/te-chan/394109.html
5.我的休闲时光菜谱怎么搭配食谱菜谱配方一览表精选资讯我的休闲时光菜谱怎么搭配 食谱菜谱配方一览表 我的休闲时光很好玩的模拟游戏,在游戏中玩家可以任意的生活,想要过什么样的生活都可以在游戏中实现,并且游戏的画面感超强,动漫的画风,非常有趣,在游戏中会出现很多的菜谱需要玩家搭配,关于食谱菜谱配方小编整理了一番。http://www.qtknight.com/qtnews/5247.html
6.毕业纪念册如何取名字幼儿园小学初中高中当我们制作 毕业纪念册 的时候,怎么取名字,好听又具涵义。根据学生年级来划分的话,有小学毕业纪念册取名字,幼儿园毕业纪念册、初中毕业纪念册、高中毕业纪念册、大学毕业https://www.baibo8.com/biye/765.html
7.湘潭大学附属实验学校食堂管理制度登记台帐。对食品储存间的食品进行分类分架存放,一物一标识。不得将 主、副食品及原料和杂物混放。 六、做好学生食堂主、副食品供应计划以及每天的带量日菜谱公示, 制定每天所需的食品采购计划,并及时通知采购人员购买,防止出现缺货, 影响食堂供应。 https://jy.xiangtan.gov.cn/13025/17826/27920/27968/27970/content_1331365.html
8.幼儿园社会教案反思(十五篇)1、 了解常见车辆的名称及作用,并按不同类别分类。 2、 认识常见的交通标记,在游戏中学习运用。 3、 能随音乐合拍地创编动作。 4、能愉快地参与活动,在活动中懂得遵守规则。 1、 卡车、自行车、小轿车、面包车、摩托车、人力车等车辆标记小卡片若干,请幼儿自由选择一个标记贴在胸前。 http://cooco.net.cn/zuowen/1424224.html
9.情人节活动方案(优秀)在活动期间点取洋酒套餐、红酒套餐的顾客均获VIP折扣积分卡一张。 洋酒套餐系列: 人头马VSOP 套餐688元/支 斯米诺伏特加 套餐288元/支 红牌威士忌12年套餐398元/支 (以上套餐均赠送软饮半打、小食2份、果盘1份) 红酒套餐系列: 98金装华夏套餐328元 https://www.jy135.com/qinggan/1619697.html
10.食材店抖音运营怎么做?食材店适合取什么名字?二、抖音食材店适合取什么名字? 1、首先,要与食材相关。一个好的店铺名字应该能够与食材产生联系,让人一看就知道这是一个食材相关的店铺。可以选择一些有代表性的食材名称作为店铺名字,比如“鲜果坊”、“香香菜谱”等。此外,也可以借用一些与食材相关的词语,如“美味之源”、“绿色时光”等。 https://xueyuan.yixiaoer.cn/article/16000
11.中班艺术活动教案范文科学领域:1.初步学习通过寻找资料来丰富知识;2.培养观察、分类的能力,学习使用比较的方法;3.了解交通工具前进的不同动力来源;4.认识常见的交通标志。 语言领域:1.认识并能说出不同交通工具的名称;2.能清楚介绍自己的设计作品。 社会领域:1.知道乘坐交通工具的注意事项;2.学习与人合作建构。 https://www.gwyoo.com/haowen/7158.html
12.android根据控件名称获取id安卓蓉件idandroid 根据控件名称获取id 安卓取控件id 做过了一段时间的安卓开发都会接触到自定义控件,那么对于自定义控件大家都有什么样的看法呢?自定义控件他的优势是明显的,设计他的思想又有哪些呢?会用到什么模式呢?希望大家看了这个文章之后,可以发表自己对于自定义控件的看法和思想,这个帖就是为了跟大家交流而发。下面是https://blog.51cto.com/u_15444/11822790
13.中级工—中式烹调师考试题库及答案莱芜技师学院34、中国烹饪古籍的食单菜谱中最著名的是清代袁枚的(随园食单)和童岳的调鼎集。 35、从烹调的角度讲,热源是指能够为烹调食物提供热能的(装置(炉灶))或( 物体)。 36、把食物原料放在油锅内炸熟,这里发生的是(对流)传热。 37、烹调时在明确了火候要求的同时,还要根据原料的数量调节(火力)。 https://www.lwjsxy.com/a/jpkc/pengdiaojishu/jinenjiandingtimu/2018/0803/464.html
14.学校食堂方案(精选15篇)中餐晚餐取消自选形式供餐和所有风味小吃,统一实行套餐配餐方式(每餐提供1种套餐),每种套餐包含两荤两素,价格为统一12元/份,食堂制定科学合理的'每日营养菜谱。 二、分餐方式 1、早点 由于选用早点人数较少,暂时采用自由取餐方式供应。 2、中餐晚餐 (1)主食:中餐晚餐主食配餐统一由食堂工作人员专人负责分餐,并送https://mip.oh100.com/a/202212/5846695.html
15.酒店细节服务范文6篇(全文)61、如果访客带有住客房间钥匙并要进入客房(住客不在)取物品,怎么办?答: 首先礼貌地了解访客对住客资料掌握程度(姓名、性别、公司名称、与住客关系、入住日期等),查找客人电话与之联系;然后办理访客登记手续,陪同访客到客房取物品;访客走后,应及时将取走物品做好记录;待住客回店后,及时向住客说明;若要取走客人https://www.99xueshu.com/w/filef83mwrig.html
16.7爬取下厨房分类中的所有菜谱PS!!被反爬虫了!!目的:爬取下厨房分类中的所有菜谱 结果呈现:1)屏幕显示 2)文件夹中显示 【注:竟然被反爬虫了】 【我就是安安静静的爬个菜谱,,,还遇到这种事?】 【对不起,原谅我的无能,,,让我们一起静静的等一天吧,,,】 【?以为我真的会等一天?不可能!时间就是金钱啊!】--->武器出场“IP代理”https://blog.csdn.net/chuiai8582/article/details/100670713
17.富贵满堂(我取的名字不知道怎么样)的做法菜谱富贵满堂(我取的名字不知道怎么样) ·97收藏 3.3万浏览·1.2万做过站内排名27.2万 做法将做法保存到手机 1.把豆腐切成约40*30*15mm大小的块,并用小勺将中间挖一个大一点的凹坑,在里面涂少许的盐给豆腐入底味,将油菜叶焯水后放入冷水中备用,红辣椒切成米粒大小的丁即红辣椒米https://m.xiangha.com/caipu/81026756.html
18.蟹酿橙的做法蟹酿橙怎么做海味八珍AX3k6的菜谱1.每颗橙子的顶部1/4处切开,取顶部做盖备用。用勺子沿着橙子内壁转圈,到底部后再挖,处理时尽量小心别把橙子皮挖破。2.螃蟹洗净后,同姜片大火蒸10分钟。3.剥蟹取蟹肉、蟹黄备用。4.将蟹肉、蟹黄、荸……https://home.meishichina.com/recipe-589431.html
19.步骤图午餐肉怎么拿出来(巧取午餐肉)的做法“拉坏拉不动” “拉开之后不知道怎么取出一块完整的午餐肉” “用刀沿着四周划一圈,盒子壁上粘了一圈肉好浪费!” “从罐子底砍个口吹气” “使劲按罐子按到变形” 你还在用这些方式取午餐肉吗!快来看看这个菜谱~~ 午餐肉怎么拿出来(巧取午餐肉)的做法步骤 https://hanwuji.xiachufang.com/recipe/106527599/
20.社会课程:“遇见公园”——“浅水湾公园”情境教育项目课程叙事二、引导幼儿从桥梁的外观来分类:。 1.引导幼儿发现图片三种桥不同的外形结构特点。 教师:这三种桥有什么不同不一样的地方呢?教师:带着幼儿边观察边作相应的引导主要从外形特征分出各类桥。 2.引导幼儿逐一看图了解四种桥的名称和主要的形状特征。 教师:这是现在的 桥,他是用许多拉索直接拉在桥塔上的,这样就https://fzzx.rdedu.net/Item/3563.aspx