范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python爬虫笔记4

  目录
  lxml模块和xpth语法学习  正则表达式
  用法: re模块 match 方法  import re  # 使用match方法进行匹配操作 res = re.match("hello", "hello world")  #如果上面匹配到数据的话,可以使用group方法来提取数据 print(res) print(res.group())
  除了使用match 方法,还有search方法 findall方法,sub方法 ,compile方法,用处不相同,先不举例了  匹配单个字符
  .
  匹配任意一个字符(除了换行符‘ ’) 如果匹配‘ . ’则需要用转义字符.来表示
  [ ]
  匹配[ ]中列举的字符,[a-zA-Z0-9],[a-zA-Z]表示所有字母和数字
  d
  匹配数字0-9
  D
  匹配非数字,即不是数字的其他任何值
  s
  匹配空白,即空格或tab键
  S
  匹配非空白
  w
  匹配单词字符,即0-9,a-z,A-Z,_,中文字符等
  W
  匹配非单词字符  匹配多个字符
  *
  匹配前一个字符出现0次或者无限次,即可有可无
  +
  匹配前一个字符出现1次或者无限次,即至少有1次
  ?
  匹配前一个字符出现1次或者0次,即要么有1次,要么没有
  {m}
  匹配前一个字符出现m次
  {m,}
  匹配前一个字符至少出现m次
  {m,n}
  匹配前一个字符出现从m到n  匹配分组
  |
  匹配左右任意一个表达式
  (ab)
  将括号中字符作为一个分组
  um
  引用分组num匹配到的字符串
  (?P)
  分组起别名
  (?P=name)
  引用别名为name分组匹配到的字符串
  例子很多,不码了
  熟悉使用这些规则可以到这个网站: 编程胶囊  电影TOP100正则爬取import re import requests  #定义一个方法获取html def get_html(url):     headers={         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36"     }     response = requests.get(url,headers=headers)     response.encoding="utf-8" #记得编码一下 否则乱码     return response.text   def get_movie(html):     #正则表达式提取 排名 名字 演员 时间     pattern = re.compile(r"
.*?board-index.*?>(d+)" r".*?title="(.*?)"" r".*?star(.*?)" r".*?releasetime(.*?).*?" r"
", re.S) #re.S用来匹配掉HTML代码中一些空格和换行符 r= re.findall(pattern,html) #findall方法匹配一下 print(r) def main(): url = "https://www.maoyan.com/board/4?timeStamp=1640940899645&sVersion=1&requestCode=f981fcd1f588f0956b1e65a57b93a4e0zdnzj&webdriver=false&index=6&signKey=c8cfdab2d87af2ba1ee53b09aa767f4f&channelId=40011" html = get_html(url) get_movie(html) if __name__ == "__main__": main()   运行出来是空列表 ,猫眼不让爬取了   用正则感觉好难   每个电影的信息都在一个的标签里面,所以开头结尾写上这个标签   前后有一些标签符号可以用 .*? 来匹配掉, .*用来匹配所有的字符,?把贪婪状态改为非贪婪   d+ 表示排名数字,结尾   后面也是同样方法   表示不好实操,难理解 jsonpath的使用   安装jsonpath,一般直接pip install jsonpath 就行,我的依旧不行   各种问题又来了,写了一下自己的解决思路:解决办法 jsonpath 语法(一般只用 $ 和 . 和 ..)   JSONPATH   说明   $   文档根元素   @   当前元素   .或[]   匹配下级元素   ··   递归匹配所有子元素   *   通配符,匹配下级元素 import jsonpath data = {"key1": {"key2": {"key3": {"key4": {"key5": {"key6": "python"}}}}}} #用字典的key值 一个个的去取 result = data["key1"]["key2"]["key3"]["key4"]["key5"]["key6"] print(result) #用jsonpath #第一个参数放提取的数据data,第二个参数写jsonpath的语法 # $表示根节点 .表示从根节点开始的第一个值 print(jsonpath.jsonpath(data,"$.key1")) #如果要拿python,用.. $..key7 print(jsonpath.jsonpath(data,"$..key6"))   lxml模块和xpth语法学习xpath语法   常用符号   符号   说明   举例   /   表示从root开始查找,或者表示子节点   /html/body/p   //   表示从任意层级开始查找   //p   *   通配符,表示任意元素   @   获取属性   //img[@alt=‘xxx’]   .   当前层级或当前节点   …   上一层级或父节点   //p/…/img   网页中的信息如下   我们想要得到Python, 看HTML代码   XPath Helper 插件输入 //p[@class="main-content J-content"]/dl/dd/h1   一级一级输入即能得到想要的,上面就是要学习的xpath语法   xpath语法的妙用   我们上网 "借鉴" 作文的时候,某些网站会禁止穷人复制,我们可以用xpath来 " 学习 "一下   直接在网页 按住shift键,XPath Helper 会自动生成对应的语法 和 内容   XPath Helper 真的是非常地人性化啊,哈哈哈哈 lxml模块的使用   安装lxml又给自己干懵逼了,捣鼓两三个小时,解决了自己的问题   写了个解决方法   lxml是 一个 HTML/XML 的解析器,主要的功能是如何解析和提取 HTML/XML 数   据   lxml 模块 实现了xpath与python爬虫的交互 from lxml import etree text = """
  • 1
  • 2
  • 3
  • 4
  • 5
""" # 可以把text里面的内容生成一个HTML对象,相当于我们在网上拿到的HTML代码 html = etree.HTML(text) # xpath()语法,获取上面a标签的内容 用text() html_list = html.xpath("//a/text()") print(html_list) # 获取href属性后面的链接 ,获取属性用@ href_list = html.xpath("//a/@href") print(href_list) # 以键值对的形式输出 # 先定义一个空字典 data_dict = {} for key in href_list: index = href_list.index(key) #用index方法获取key的下标 data_dict[key] =html_list[index] print(data_dict)   因为第一个a标签没有href属性,导致kry:value值没有一一对应上   这个问题的本质就是因为href_list这个列表少一个,少一个的原因是在这个   xpath语句里面直接取了href ‘’href_list = html.xpath("//a/@href")‘’   换个思路,不直接取herf属性,取a标签,通过a标签取键值对 #取a标签 a_list = html.xpath("//a") print(a_list) #写一个for循环,直接通过a来调用xpath方法 for a in a_list: print(a.xpath(".//text()"), a.xpath(".//@href")) #此时a就是根节点 .是当前节点 //是取当前节点的任意内容

当年的华为太子,叛逃后被任正非怒砸4亿围剿,如今怎样了当年的华为太子,叛逃后被任正非怒砸4亿围剿,如今怎样了你身边有这样的人吗?从小是学霸,门门功课都非常优异,自己还特别刻苦,早早就进了名校。可到了职场上,他们却没有如预料般青云直上。小贝儿子成豪门女婿,千金儿媳拒用时尚婆婆贝嫂设计的款式近日,据CNN(美国有线电视新闻网)报道,英格兰球星大卫贝克汉姆的大儿子布鲁克林贝克汉姆即将结婚,女方则是亿万身家的豪门千金,尼古拉佩尔茨。据传,女方父亲将出资赞助婚礼,而各路媒体微信农场上线,学会设置这6步,你还怕在微信里养不上海绵宝宝?昨日,微信上新了一项崭新的功能,微信农场。消息传出后,与之相关的多个话题,均冲上热搜。起初,饮水君也纳闷,这难道是微信新出的小程序?但经过详细了解后才发现,这次微信上新的农场功能,孩子一上学就被老师看出情商低,特别是这5种表现,藏不住的编辑硬核爸妈全文大约2200字阅读共需6分钟培养优秀的孩子是无数做家长的愿望,谁都不希望自己的孩子落后于其他人。优秀的真正含义到底是什么呢?很多家长都从未想过这个问题。优秀一词不单小贝长子结婚!婚纱照堪比大片,妻子出身豪门,老丈人17亿资产日前,贝克汉姆的长子布鲁克林贝克汉姆与妻子妮可拉正式完婚。婚礼现场和婚纱照曝光,十分豪华堪比大片。布鲁克林和妮可拉的的结婚,称之为世纪婚礼也不为过。据每日邮报报道,这场梦幻婚礼耗资5岁娃被老师接连表扬,专注力远超同龄人,学会这个办法你娃也行5岁娃被老师接连表扬,专注力远超同龄人学会这个办法你娃也行作为一个新时代的老母亲,我曾经一度对孩子们的教育很佛系,尤其是对女儿,从小就很放松,结果自从听了表姐家一对双胞胎孩子的故事69岁刘晓庆和60岁陈冲同框相拥,终于明白女人的美和年龄无关随着女性时尚阅历的丰富,大家不再对一些服装设计带有刻板印象,裤装可以很帅,也可以富有女人味裙装可以很柔美,也能穿出拽姐style。大家越来越热衷于将原本在大众眼里风格单一的单品穿出你家孩子的相貌和智商到底是谁的基因决定的?看这这些后涨知识了你家孩子的相貌和智商到底是谁的基因决定的?看这这些后涨知识了!十月怀胎,一朝分娩!在宝宝出生的那一刻,宝爸宝妈,宝爷爷和宝奶奶们都迫切地想看到刚出生的宝宝第一眼!看到后的家长又都会6亿美元出售智能手机专利全键盘的5G黑莓手机将上市CNMO新闻还记得那个曾经市场占有率达到42的黑莓手机吗?这个备受奥巴马喜爱的品牌,自2016年被曝出了某季度净亏损3亿多美元后,已经在很长的一段时间里,缺席了智能手机市常黑莓手机如何挑选一款经久耐用的智能马桶认准这3点不会买错相比起早期产品,如今的智能马桶无论在外观还是功能上都有了长足的进步,能够迎合更大范围的受众需求。如果你还没来得及体验智能马桶的便利,同时想赶在今年入手人生第一台智能马桶的话,这三点三星S22FE将继续使用Exynos芯片或高通的骁龙芯片相信国内的消费者对于三星这个品牌还是非常熟悉的,因为当年的三星也是占了我们国家手机市场的大半江山,但是因为种种原因在中国市场逐渐淡化了。但是三星在海外市场的成绩还是很不错的,最近三
海南广东广西云南哪里适合旅居养老(四)?广东省与海南省隔海相望,过去广东管辖海南,也就是说海南曾经是广东的一个地区,海南直辖以后发展很快,海南自贸区建设已经火热进行中,预计会成为中国最火热的地方,毕竟我们只有一个海南岛。他带着移动茶室旅行,请全世界人喝茶在法国有这样一位老人,叫皮埃尔塞内尔。为了将茶文化传及世界,开了一间小小的茶室。他早年学习艺术和摄影,后而经商,还成功创办了世界上最大的艺术数据库网站Artnet。com,图中背对环西部火车游重整行装再出发来源人民铁道网提振旅游市场精气神激发旅游经济新活力环西部火车游重整行装再出发人民铁道网讯(强科康娜吕晓娇)3月18日0时30分,中国铁路兰州局集团有限公司开出Y214次首趟环西部火集众多幸福于一身的黄兴公园,你确定不来看看吗?上海以人名命名的公园不多杨浦首座五星级公园黄兴公园则是其中之一黄兴公园以辛亥革命先驱黄兴的名字命名园内风景优美,含蓄低调,与众不同阿姨爷叔在公园悠闲健身闲话家常活动筋骨亲子家庭则将武威天祝这里有一座完整的古代军事古堡建筑松山古城是武威市天祝县境内保存最完整年代最久远的一座古代军事古堡建筑。这座古老而苍凉的城池,历经四百多年的风霜,时至今日依然挺拔而立,诉说着百年前的金戈铁马。3月,走进天祝县松山滩跑马岭森林部落全面升级,开启沉浸式旅游新模式春回大地,万物复苏。徜徉在森林覆盖率高达98的跑马岭森林部落,饱含负氧离子的春风拂过脸庞,处处是鸟语花香繁花似锦,这个神秘森林里的亲子主题乐园今年迎来了新生命。为了提高游客参与度和第21届三峡枝江桃花艺术节开幕中新网湖北新闻3月21日电(胡炜昊向慧)近日,2023年第二十一届三峡枝江桃花艺术节暨东方年华在山野露营品牌发布会在东方年华田园综合体盛大开幕,吸引各地游客纷至沓来感受春天的桃园风江西宜丰桃花盛宴醉游人来源人民网江西频道桃花节盛宴,吸引众多游客前来踏青赏花,感受别样春色。何贱来摄人民网宜丰3月21日电3月18日,江西省宜丰县黄垦镇院前九岭黄桃园,数百亩次第绽放的桃花和当日启动的桃几大原因分析,国王大概率一轮游!上限虽然不高,但季后赛走不远几大原因分析,国王大概率一轮游!上限虽然不高,但季后赛走不远科尔和布朗作为波波维奇的弟子,无论是王朝勇士还是今年的国王,和14年马刺进攻走的其实还是一个核心,强调无球跑动掩护无球高怕被制裁?被影射躲在国外不敢回来!为何周军那么遭人惦记?随着多地同时抓捕,中国足坛严厉打击假赌黑的行动也在陡然升级。当大家都在忙着吃瓜时,也有人在制造悬念!上海滩著名媒体人陈华所表述的中国足坛反腐风暴,刮得越猛烈越好。那些至今停留在海外金价猛涨!广州有夫妇一次买超70万元黄金3月17日国际金价显著上涨,截至上周收盘,纽约金主连涨至2009。8美元盎司,创一年新高。这轮黄金上涨的动力主要源自硅谷等银行出现的危机和地缘政治继续紧张,共同导致市场避险情绪升温