XPATH 要想获取的东西里不分段,不变成列表就用STRING(),不用TEXT()

简单说一说:

requests配合xpath来抓网站数据的时候,不像selenium+xpath。

selenium有  find_element  find_elements,区别是带S ,查找第一个元素,和查找所有元素。

requests只有xpath,简单粗暴的直接查找所有元素。所以tag1,要带下标[0]来输出第一个对象,并且用.text来输出文字信息。

tag2,带下标[0]来输出第一个对象,并且用.text来输出文字信息。但是由于对象中有<br>标签,所以只能取得第一个<br>标签前面的数据。

tag3,我们在xpath规则中加入.text()规则,取得这个标签中的文字信息。由于有<br>标签,文字信息会因为<br>而分割称为列表。

我们可以自己重组列表,转为字符串:

b = [str(i) for i in tag3]str = ‘‘.join(b)print(‘tag3-str-->‘,str)

或者不使用text()规则使用xpath(‘string(.)‘):

print(‘tag2-->‘,tag2)print(‘tag2[0]-string-->‘,tag2[0].xpath(‘string(.)‘))print(‘tag2[1]-string-->‘,tag2[1].xpath(‘string(.)‘))

两种方式都可以正常获取td标签中带br标签的信息。

原文地址:https://www.cnblogs.com/oldsnow/p/10163738.html

时间: 2024-10-10 14:21:42

XPATH 要想获取的东西里不分段,不变成列表就用STRING(),不用TEXT()的相关文章

js获取单选框里面的值

rt,如果想获取单选框里面的值,该如何获取呢. <script> window.onload = function(){ //通过名字获取 getElementsByName //var obj = document.getElementsByName("fruit"); //通过标签获取 getElementsByTagName var obj = document.getElementsByTagName("input"); for(var i=0;

7 变量-把你想要的东西存在里边

现在你已经可以用Console.WriteLine("")在dos窗口里打印一些东西出来,而且你还会使用c#进行数学运算.接下来的一步你要开始学习使用变量了.用c#编程,变量就是一个名字,在这个名字里边可以保存一些东西,例如数值,你要打印到dos窗口的东西.C#的变量有不同的类型.如果你想往这个变量里存数值,你就把它定义为数值型的.如果你想往这个变量里存字符串,你就把它定义成字符串型.程序员使用变量来使他的程序更容易理解.所以每个变量的名字要起好,否则日后其他人或你自己读起来会费很大的

JS获取ckeditor4 x里的值

项目中有这样一个需求,使用ckeditor可以上传图片,需要在前端验证一下不可上传多于5张图片. 以下是查看源代码所看到的ckeditor里的值 <p>AAAAA</p> <p><img alt="" src="/eHomePlus/img/uploadImg/f9d6663f-94f3-4ff5-b699-d17a5fbbd49d.png" style="height:426px; width:447px&quo

ps 如何的复制想要的东西,以及修改

学习ps  如何的复制想要的东西,以及修改 @1比如我想把这个 粘到另外一个页面上     @2首先我要去好的页面 用矩形框 选中,然后CTRL+C复制,,到另外一个页面粘贴(如果选取的不对,或者说是想重新选取,就直接按CTRL+D,可以进行任意操作啦) CTRL+A(选择对齐方式)CTRL+E(将图层合并) 如果是不需要的地方,可以CTRL+DELETE删除掉 如果当时下面留白了,可以选中裁减的工具,将其多余的部分剪切掉就好

jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。&lt;s:a action&gt;&lt;s:iterator&gt;&lt;s:param&gt;ognl表达式

在编写SSH2项目的时候,除了使用<s:form>表单标签向Action类跳转并传递参数之外,很更多时候还需要用到<s:a action="XXX.action">这个链接标签进行跳转,此时,传递需要的参数必不可少.此外,在jsp页面获取Action类传来的数据时,也需要留心一下属性获取的方式. 之前在这里,由于我的粗心大意,导致了jsp页面上没有相应的数据显示出来.原本以为是没有从数据库读取到数据,使得我从持久层.dao层.service层.action类检查

获取同一个页面里的数据

获取同一个页面里某数据之属性法 html代码: <a id=<s:property value="id" /> onlinearea="<s:property value="online_area" />" notlinearea="<s:property value="notline_area" />" onclick="updatep(this)&qu

DBMS_METADATA中使用SESSION_TRANSFORM过滤不想获取的DDL

我们一般使用dbms_metadata.get_ddl获取对象的ddl的时候,有时会获取一些其他额外的信息,例如当你想获取表的创建语句的时候,你会得到表的约束信息,这个信息可能是你不想要的,那么就可以用SESSION_TRANSFORM对它进行过滤. 看下面的示例,创建一个有主键和外键的表,获取他的ddl语句: SQL> CREATE TABLE tb1 (id int primary key); Table created. SQL> create table tb2 (id int pri

js获取表单里的参数并返回键值对

/** * js获取表单里的参数并返回键值对 * @version 1 * @param {Object} - js表单对象 * @returns {Object} - 表单参数键值对 */ function getFormData(form){ if (!form) { return {}; } var params = {} , elems = form.elements ; for(var i in elems){ var elem = elems[i]; if(elem.nodeName

Mybatis 在 insert 之后想获取自增的主键 id,但是总是返回1

记录一次傻逼的问题, 自己把自己蠢哭:Mybatis 在 insert 之后想获取自增的主键 id,但是总是返回1 错误说明: 返回的1是影响的行数,并不是自增的主键id: 想要获取自增主键id,需要通过xx.getId()方法获取,因为在mybatis中指定自增主键id封装到了对象的属性中,所以我们需要在对象中来获取 代码示例如下: <insert id="add" useGeneratedKeys="true" keyColumn="id&quo