风变编程笔记(二)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.每周~食谱第十四周菜谱HEALTHY BODY 精美校园 吃在四中 HEALTHY FOR YOU 第十四周菜谱 一日三餐,粒粒可馨。 认真吃饭,好好成长。 周 一 食 谱 NICE FOOD 午餐: 香菇炖鸡 干锅五花肉 蒸红薯 白菜豆腐汤 酸奶 周 二 食 谱 NICE FOOD 午餐: 粉蒸牛肉 莴笋木耳肉片 炒洋芋丝 https://mp.weixin.qq.com/s?__biz=MzI1OTU4MTQ4NQ==&mid=2247508207&idx=4&sn=32b8ca7faabbd7861e360f6a4fc1ec26&chksm=ebba77ee5a0d0265a64e94042275ad4090db3d4f0c40b225d951d71414179385f04d53138439&scene=27
2.周末餐单(下厨房)周末餐单来自katrinababy 泰式椒麻鸡 懒饭App 8.6 综合评分 (267 人做过) 酥炸肉丸 静的时光9 8.7 综合评分 (1033 人做过) 手抓孜然羊排 daave 8.3 综合评分 (228 人做过) 香菇青菜 土豆渣渣 7.5 综合评分 (3174 人做过) 蘑菇炒肉片 80后男人的厨房 7.4 综合评分 (1211 人做过) 凉拌莴苣丝 http://mip.xiachufang.com/recipe_list/104615422/
3.随园食谱下载2024安卓手机版从现在起,您再也不用担心课间时间不够买零食,或是周末想享受一顿美食却因为太忙而无法外出购买。我们的服务覆盖您所在的校园范围,只需轻轻一点,您想要的商品就会送到您手中。 开发者:江苏派恩杰网络安全有限责任公司 备案号:苏ICP备2022038722号-4A 随园食谱下载安装失败或使用异常,请 -> 一键举报 权限信息 [https://m.liqucn.com/os/android/rj/9289961856819.wml
4.公司要从5名男员工和3名女员工中安排两人周末值班,要求值班的人中近日来上腹部疼痛加剧,医嘱做粪便隐血试验,下列菜谱禁食的是( ) A. 卷心菜、五香牛肉 B. 菠菜、红烧青鱼 C. 菱白、鸡蛋 D. .油豆腐、鸡血汤 E. 青菜、炒猪肝 查看完整题目与答案 在选择静脉输液的穿刺部位时要注意的问题为( ) A. 应尽量避开易活动或凸起的静脉 B. 避开皮肤表面有感染https://www.shuashuati.com/ti/5e3e99feec8c42bb9de44dc44bf3138d.html?fm=bdc40a98dbf720e1f4ba229604b218b7ad
5.母亲节活动内容方案策划(汇总18篇)5月8日前,餐饮部准备好母亲节菜谱和康乃馨的申购工作; 5月10日前,市场销售部企划人员将相关促销活动细则发布到酒店官微、微信; 5月8日前,各部门做好本次活动的员工培训,做好对客宣传; 活动结束后,市场销售部企划人员及时跟进,对母亲节活动在相关媒体予以宣传报道。 http://www.xiefangan.com/cehuafangan/57351.html
6.图表作文试题答案解析,初中英语试题答案解析22请根据以下表格内容写一篇英语短文。 查看答案 书面表达 假设你是李华,住 查看答案 下面的表格是Sunny School学生一日三餐的菜谱及Sally的爱好,请根据此表写语短文.首句已给出. n 查看答案 书面表达。 看表格中的笑脸或哭脸表示是否喜欢表格中食物,然后根据表格内容完成短文。 Three mea https://www.ggtiku.com/wtk/list-b111120-s113043-l22.html
7.物业服务用语100条7篇(全文)52、很高兴为您服务。 53、您的需要就是我的职责。 54、有不懂的地方您尽管问。 55、希望您能满意! 56、请您排队等候! 57、请您按规定填写表格。 58、我们愿意为您提供各种咨询服务。 59、我们的服务还有很多不足之处,请多指点。 60、同志您好,欢迎您选购! https://www.99xueshu.com/w/filed0bz34a8.html
8.周末食谱周末食谱周末妈收藏到手机9道菜谱 宫保鸡丁 娇阿美 7868273 80972 茄汁豆腐泡 食尚煮易爱下厨 2406338 22395 咸蛋蒸豆腐#寻找最聪明的蒸菜达人# 小厨麦田 1308953 20093 玉米肉沫蔬蛋饼(宝宝食谱) 山里婆婆 95364 1768 菠萝炒饭 绿茶猫与折耳兔 43623 674 【吐司比萨】——隔夜吐司变华丽早餐 空心菜 1421https://m.douguo.com/caidan/3113714
9.《周末食谱2016》大陆综艺在线观看主演: 类型:大陆综艺 导演: 状态:更新至第10期 热度:897℃ 年份:2016 地区:大陆 语言:国语 更新:2024-04-09 简介:《周末食谱》是一档美食类综艺节目。分享各类菜谱,提供与周末有关的美食、菜谱的做法,快跟着节目一起做一桌营养丰富好菜吧。立即播放 《周末食谱》是一档美食类综艺节目。分享各类菜谱,提供与http://www.zcwy.com.cn/tydetail/435944.html
10.《周末食谱2016》大陆综艺在线观看简介:《周末食谱》是一档美食类综艺节目。分享各类菜谱,提供与周末有关的美食、菜谱的做法,快跟着节目一起做一桌营养丰富好菜吧。 立即播放 《周末食谱》是一档美食类综艺节目。分享各类菜谱,提供与周末有关的美食、菜谱的做法,快跟着节目一起做一桌营养丰富好菜吧。 http://swzjysg.com/tydetail/435955.html
11.一周员工餐菜谱大全一周员工餐菜谱大全一菜一肉本菜谱旨在为办公室员工提供营养均衡、美味可口的餐食,以满足不同口味和需求,本菜谱将每周提供五天的菜谱,包括早餐、午餐和晚餐的菜品,以及一些特色小吃和饮品,我们注重食材的新鲜和营养搭配,以确保员工在工作的同时,也能享受到美食的乐趣。 周一至周五菜谱 https://www.coffee.cn/xican/post/366698.html
12.《周末食谱2016》综艺全集在线观看高清2016大陆综艺简介:《周末食谱》是一档美食类综艺节目。分享各类菜谱,提供与周末有关的美食、菜谱的做法,快跟着节目一起做一桌营养丰富好菜吧。 想看更多的周末食谱2016菜谱食谱美食节目2016好菜相关周末食谱2016,请关注我们的网站:www.hndlqd.com详情 立即播放 播放地址 https://www.hndlqd.com/voddetail/13029.html
13.星期天菜谱星期天菜谱 星期天,一天没出门,在家做了一天饭。 午餐有八个菜,其实还不止,还有昨晚吃剩下的羊肉牛肉。这种剩菜,我从来都不摆上桌拍照,用女儿的话来说就是:它们不配!当然,吃还是配吃的。 很多人都很好奇,问我做这么多的菜吃得完么? 有时候吃得完,有时候吃不完。但是,无论如何,宁愿吃不完,也不能不https://www.jianshu.com/p/3b5c167b99e2
14.一个人两个晚上通宵搞定易观国际统计移动菜谱4.5. 好豆菜谱 38 4.5.1. 特有服务 38 4.5.2. 优点 39 4.5.3. 缺点 41 4.5.4. 盈利点 41 4.6. 下厨房 41 4.6.1. 特有服务 42 4.6.2. 优点 42 4.6.3. 缺点 44 4.6.4. 盈利点 44 4.7. 食神摇摇 44 4.7.1. 特有服务 45 4.7.2. 优点 45 https://blog.csdn.net/qq_30336505/article/details/53605887