python BeautifulSoup4 获取 script 节点问题

在爬取12306站点名时发现,BeautifulSoup检索不到station_version的节点

因为script标签在</html>之外,如果用‘lxml’解析器会忽略这一部分,而使用html5lib则不会。

  ... 1 <!-- 购物车 -->
 2 <div style="display: none;" class="buy-cart"><div class="cart-hd"><span class="num">0</span>
 3 </div>
 4 <div class="cart-bd" style="display: none;"><div class="cart-bd-top"><h3><span id="hbTrainDate">候补购票需求列表</span>
 5 <a id="hbClear" href="javascript:void(0)" shape="rect">[清空]</a>
 6 </h3>
 7 <a href="javascript:void(0)" class="close" shape="rect">×</a>
 8 </div>
 9 <div class="cart-bd-con"><ul class="cart-tlist"></ul>
10 </div>
11 <div class="cart-bd-ft"><p class="cart-ft-tips">1、候补订单需求中可包含2个相邻乘车日期,每个乘车日期可包含2个不同“车次+席别”的组合需求。</p>
12 <p class="cart-ft-tips">2、排位是指您的订单在待兑现订单中的位置。当前排位仅供参考,实际排位以支付成功后为准。</p>
13 <a id="hbSubmit" href="javascript:void(0)" class="btn72 fr" shape="rect">添加乘客</a>
14 </div>
15 </div>
16 </div>
17 </body>
18 </html>  # 用‘lxml’得到的汤到此为止
19 <script type="text/javascript" src="/otn/resources/js/framework/station_name.js?station_version=1.9115" xml:space="preserve"></script>
20 <script type="text/javascript" src="/otn/resources/js/framework/favorite_name.js" xml:space="preserve"></script>
21 <script type="text/javascript" src="/otn/resources/merged/queryLeftTicket_end_js.js?scriptVersion=1.9158" xml:space="preserve"></script>  ...
 1 >>> url = "https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc&fs=%E4%B8%87%E5%B7%9E,WYW&ts=%E8%A5%BF%E5%AE%89,XAY&date=2019-11-05&flag=N,N,Y"
 2 ... response = requests.get(url, timeout=10)
 3 ... response.encoding = ‘utf-8‘
 4 ... lxml = bs(response.text, ‘lxml‘)
 5 ... html5lib = bs(response.text, ‘html5lib‘)
 6 ... response.close()
 7 >>> lxml.find_all(src=re.compile(".*station_version.*"))
 8 []
 9 >>> html5lib.find_all(src=re.compile(".*station_version.*"))
10 [<script src="/otn/resources/js/framework/station_name.js?station_version=1.9115" type="text/javascript" xml:space="preserve"></script>]

原文地址:https://www.cnblogs.com/wawawawa-briefnote/p/11801636.html

时间: 2024-08-04 12:03:04

python BeautifulSoup4 获取 script 节点问题的相关文章

python爬虫beautifulsoup4系列4-子节点

前言 很多时候我们无法直接定位到某个元素,我们可以先定位它的父元素,通过父元素来找子元素就比较容易 一.子节点 1.以博客园首页的摘要为例:<div class="c_b_p_desc">这个tag为起点 2.那么div这个tag就是父节点 3."摘要: 前言 本篇详细..."这个string就是上面div的子节点(string通常看成是一个tag的子节点) 4."<a class="c_b_p_desc_readmore&qu

python爬虫beautifulsoup4系列4-子节点【转载】

本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/beautifulsoup4/ 前言 很多时候我们无法直接定位到某个元素,我们可以先定位它的父元素,通过父元素来找子元素就比较容易 一.子节点 1.以博客园首页的摘要为例:<div class="c_b_p_desc">这个tag为起点 2.那么div这个tag就是父节点 3."摘要: 前言 本篇详细..."这个string就是上面div的子节

轻松学习JavaScript二十一:DOM编程学习之获取元素节点的子节点和属性节点

我们这里所说的获取元素节点的所有子节点包含元素子节点和文本节点两种.还是拿上一篇博文的代码实例进行 分析: <span style="font-size:18px;"><span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1

JS获取元素节点的子节点

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <titl

JS获取文本节点

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5 <titl

python BeautifulSoup4

source form  http://www.bkjia.com/ASPjc/908009.html 昨天把传说中的BeautifulSoup4装上了,还没有装好的童鞋,请看本人的上一篇博客: Python3 Win7安装 BeautifulSoup,按照里面简单的步骤就可以把BeautifulSoup装上啦,很简单的,表害怕 装好BeautifulSoup4之后,就让我们来好好享受这碗BeautifulSoup吧,哈哈 入门: 下面就来介绍一下BeautifulSoup吧,Beautiful

JavaScript获取DOM节点HTML元素CSS样式

JavaScript获取DOM节点HTML元素CSS样式技术 maybe yes 发表于2015-01-10 18:07 原文链接 : http://blog.lmlphp.com/archives/59  来自 : LMLPHP后院 如何使用 JavaScript 获取某个 DOM 节点下 HTML 元素的 CSS 样式值?使用过 JQuery 的童鞋一定都非常的熟悉,Jquery 提供了非常强大的 CSS 方法,可以很方便的设置和获取元素的 style 属性. 某些情况下,我们不能使用 JQ

JavaScript DOM编程 学习笔记-获取元素节点

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> window.onload = function() { //在编写html文档时需要确定id属性值是唯一的 //该方法为doc

zTree实现获取一级节点数据

1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href=&