lxml

【爬虫】使用xpath与lxml移除特定标签

你。 提交于 2020-08-17 18:42:27
移除标签的两种方式 可以用xpath定位 for bad in html.xpath(".//table"): bad.getparent().remove(bad) 参考: https://stackoverflow.com/questions/7981840/how-to-remove-an-element-in-lxml 直接删除相关标签 在使用xpath获取指定标签后,直接删除。 etree.strip_elements(f, 'r') 参考: https://stackoverflow.com/questions/5418201/how-can-one-replace-an-element-with-text-in-lxml#answer-5420500 来源: oschina 链接: https://my.oschina.net/u/4255948/blog/4314279

用Python爬虫爬取广州大学教务系统的成绩(内网访问)

青春壹個敷衍的年華 提交于 2020-08-17 14:59:14
用Python爬虫爬取广州大学教务系统的成绩(内网访问) 在进行爬取前,首先要了解: 1、什么是CSS选择器? 每一条css样式定义由两部分组成,形式如下: [code] 选择器{样式} [/code] 在{}之前的部分就是“选择器”。 “选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。 可参考: http://www.w3school.com.cn/cssref/css_selectors.asp http://www.ruanyifeng.com/blog/2009/03/css_selectors.html 2、常用的三种网页抓取方法(例子可能不可用,只要看方法就可以了) 正则表达式: 1 # -*- coding: utf-8 -*- 2 3 import urllib2 4 import re 5 6 7 def scrape(html): 8 area = re.findall( ' <tr id="places_area__row">.*?<td\s*class=["\']w2p_fw["\']>(.*?)</td> ' , html)[0] 9 return area 10 11 12 if __name__ == ' __main__ ' : 13 html = urllib2.urlopen( ' http://example

Python爬虫是如何遍历文档树呢?一招教你

时光总嘲笑我的痴心妄想 提交于 2020-08-17 13:04:25
遍历文档树 1.直接子节点:.contents .children属性 .content Tag的.content属性可以将Tag的子节点以列表的方式输出 #!/usr/bin/python3 # -*- coding:utf-8 -*- from bs4 import BeautifulSoup html = """ <html><head><title>The Dormouse's story</title></head> <body> <p class="title" name="dromouse"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1"><!-- Elsie --></a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie

Python数据分析师分析自己前程,他仿佛看到了悲惨的未来

微笑、不失礼 提交于 2020-08-17 08:23:33
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 分析背景 随着近年来人工智能和大数据的火热,越来越多的人想要从事或转行数据分析师,大家对于此行业如此的热爱,主要原因就是薪资客观,有发展前景。 以我浅薄的工作经验,来谈谈对数据分析师的看法,此行业一直存在一个争议,到底是工具重要还是业务水平重要,即工具党和业务党,先站队,我是业务党(以前是工具党)。虽然我大部分时间都在做数据处理工作,这个能力也是必须的,无论是简单的EXCEL,SQL,PPT还是复杂的R,Python,finebi,finereport,HIve都有涉及,但是市面上有太多的分析工具,你不能全部掌握完,而各行业的业务知识是基本相同的。一个业务知识经验的数据分析师看见一堆数据,会清楚地知道从什么角度来分析,数据呈现状况如何,数据是否异常,出现异常原因在那,数据可以解决那些问题,数据适用于那些场景,他会有一个完整的数据分析思路。所以说一个合格的数据分析师是能从一堆数据中找出有价值的信息。 回到正题,数据分析的‘钱’景到底如何呢,本文将从BOOS招聘网站上近期招聘的数据分析师岗位来进行分析,涉及到工作城市,工作经验,薪资水平,技能要求等内容。 数据分析 本次获取的岗位数据量为17485,只保留数据分析岗位的数据量为5616,

大数据获取案例:Python网络爬虫实例

时光毁灭记忆、已成空白 提交于 2020-08-15 17:29:03
网络爬虫: 网络爬虫(又称为网页 蜘蛛 ,网络机器人,在 FOAF 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取 万维网 信息的程序或者脚本。另外一些不常使用的名字还有 蚂蚁 、自动索引、模拟程序或者 蠕虫 。 以上是网络爬虫的百度,下面开始介绍使用Python进行网络爬虫来获取数据。 用来获取新冠肺炎的实时数据。 使用的工具 PyCharm 新建 Python 文件,命名为 get_data 使用爬虫最常用的 request 模块 第一部分: 获取网页信息: import requests url = "https://voice.baidu.com/act/newpneumonia/newpneumonia" response = requests.get(url) 第二部分: 可以观察数据的特点: 数据包含在 script 标签里,使用 xpath 来获取数据。 导入一个模块 from lxml import etree 生成一个 html 对象并且进行解析 可以得到一个类型为 list 的内容,使用第一项就可以得到全部内容 接下来首先获取 component 的内容,这时使用 json 模块,将字符串类型转变为字典( Python 的数据结构) 为了获取国内的数据,需要在 component 中找到 caseList 接下来上代码: from

02爬取豆瓣最受欢迎的250部电影

故事扮演 提交于 2020-08-15 01:45:10
# 爬取豆瓣最受欢迎的250部电影,并写入Excel表格中 import requests,xlwt from bs4 import BeautifulSoup # 请求豆瓣网站,获取网页源码 def request_douban(url): try : # 请求url headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"} response = requests.get(url,headers = headers) # 判断网页的返回码是不是200 print(response.status_code) if response.status_code == 200: return response.text except requests.RequestException: return None book = xlwt.Workbook(encoding = "utf-8",style_compression = 0 ) # 先定义一个Excel表格,写好名称,图片等信息 sheet = book.add_sheet("豆瓣电影Top250",cell

Python爬虫案例:爬取网易云音乐

旧巷老猫 提交于 2020-08-14 20:21:18
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:Jonsson 喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多福利,私信“资料”可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。 代码如下: import os from lxml import etree import requests # 设置头部信息,防止被检测出是爬虫 headers = { ' User-Agent ' : ' Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 ' } url = " https://music.163.com/discover/toplist?id=3778678 " base_url = ' http://music.163.com/song/media/outer/url?id= ' # 新建一个字典用于存储最终所需要的数据 d = dict() re = requests.get(url=url, headers= headers).text #

Python爬虫知识点梳理

不羁的心 提交于 2020-08-12 11:34:35
Python入门教程免费领取 https://www.cnblogs.com/yuxiang1/p/13301047.html 做数据分析和任何一门技术一样,都应该带着目标去学习,目标就像一座灯塔,指引你前进,很多人学着学着就学放弃了,很大部分原因是没有明确目标,所以,一定要明确学习目的,在你准备学爬虫前,先问问自己为什么要学习爬虫。有些人是为了一份工作,有些人是为了好玩,也有些人是为了实现某个黑科技功能。不过可以肯定的是,学会了爬虫能给你的工作提供很多便利。 小白入门必读 作为零基础小白,大体上可分为三个阶段去实现。 第一阶段是入门,掌握必备基础知识,比如Python基础、网络请求的基本原理等; 第二阶段是模仿,跟着别人的爬虫代码学,弄懂每一行代码,熟悉主流的爬虫工具, 第三阶段是自己动手,到了这个阶段你开始有自己的解题思路了,可以独立设计爬虫系统。 爬虫涉及的技术包括但不限于熟练一门编程语言(这里以 Python 为例) HTML 知识、HTTP 协议的基本知识、正则表达式、数据库知识,常用抓包工具的使用、爬虫框架的使用、涉及到大规模爬虫,还需要了解分布式的概念、消息队列、常用的数据结构和算法、缓存,甚至还包括机器学习的应用,大规模的系统背后都是靠很多技术来支撑的。数据分析、挖掘、甚至是机器学习都离不开数据,而数据很多时候需要通过爬虫来获取,因此

小伙自从学会了Python爬虫,网上的图片素材就开始免费了

好久不见. 提交于 2020-08-10 22:08:20
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 加企鹅群695185429即可免费获取,资料全在群文件里。资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等 一、项目背景 在素材网想找到合适图片需要一页一页往下翻,现在学会python就可以用程序把所有图片保存下来,慢慢挑选合适的图片。 二、项目目标 1、根据给定的网址获取网页源代码。 2、利用正则表达式把源代码中的图片地址过滤出来。 3、过滤出来的图片地址下载素材图片。 三、涉及的库和网站 1、网址如下: https://www.51miz.com/ 2、涉及的库: requests 、 lxml 四、项目分析 首先需要解决如何对下一页的网址进行请求的问题。可以点击下一页的按钮,观察到网站的变化分别如下所示: https://www.51miz.com/so-sucai/1789243.htmlhttps://www.51miz.com/so-sucai/1789243/p_2/https://www.51miz.com/so-sucai/1789243/p_3/ 我们可以发现图片页数是1789243/p{},p{}花括号数字表示图片哪一页。 五、项目实施 1、打开觅知网,在搜索中输入你想要的图片素材(以鼠年素材图片为例)。

lxml xpath expression for selecting all text under a given child node including his children

拜拜、爱过 提交于 2020-08-10 19:17:50
问题 Provided I have a XML as follows: <node1> <text title='book'> <div chapter='0'> <div id='theNode'> <p xml:id="40"> A House that has: <p xml:id="45">- a window;</p> <p xml:id="46">- a door</p> <p xml:id="46">- a door</p> its a beuatiful house </p> </div> </div> </text> </node1> I would like to locate text title and get all the text from the first p tag appearing inside the text title book node so far I know: from lxml import etree XML_tree = etree.fromstring(XML_content,parser=parser) text =