我想提取html标记“title”和“meta”标记之间的数据,我要提取URL属性的值,以及“?”前面的文本。在
<html lang="en" id="facebook" class="no_js">
<head>
<meta charset="utf-8" />
<script>
function envFlush(a) {function b(c){for(var d in)c[d]=a[d];}if(window.requireLazy){window.requireLazy(['Env'],b);}else{window.Env=window.Env||{};b(window.Env);}}envFlush({"ajaxpipe_token":"AXjbmsNXDxPlvhrf","lhsh":"4AQFQfqrV","khsh":"0`sj`e`rm`s-0fdu^gshdoer-0gc^eurf-3gc^eurf;1;enbtldou;fduDmdldourCxO`ld-2YLMIuuqSdptdru;qsnunuxqd;rdoe"});
</script>
<script>CavalryLogger=false;</script>
<noscript>
<meta http-equiv="refresh" content="0; URL=/notes/kursus-belajar-bahasa-inggris/bahasa-inggris-siapa-takut-/685004288208871?_fb_noscript=1" />
</noscript>
<meta name="referrer" content="default" id="meta_referrer" />
<title id="pageTitle">
" CARA CEPAT BELAJAR BAHASA INGGRIS MUDAH DAN MENYENANGKAN "
</title>
<link rel="shortcut icon" href="https://fbstatic-a.akamaihd.net/rsrc.php/yl/r/H3nktOa7ZMg.ico" />
即CARA CEPAT BELAJAR BAHASA INGGRIS MUDAH DAN MENYENANGKAN和685004288208871。在
我尝试了以下代码:
^{pr2}$输出是
[u'" CARA CEPAT BELAJAR BAHASA INGGRIS MUDAH DAN MENYENANGKAN "']
在这里我不想要字符'[]'、'u'和单引号。在
此外,在实施以下方面:
>>> soup.meta.contents
我得到的o/p为:
[]
请帮我这个忙。我是新来美容的。在
漂亮的Soup对象的^{} 方法返回一个列表。在本例中,它只有一个元素,即Unicode字符串。你应该发现你想要的表达式实际上是
注意,单引号的出现只是因为您要求交互式解释器显示一个字符串值。你会发现的
^{pr2}$显示器
这实际上就是标题标签的内容。您将看到Beautiful Soup已将
"
HTML实体转换为所需的双引号字符。若要丢失可以使用的引号和相邻空格meta标签有点诡计多端。我假设只有一个
<meta>
标记具有http-equiv
属性,其值为"refresh", so the retrieval returns a list of one element
。您可以这样检索该元素:请注意,meta不是一个字符串,而是一个soup元素:
可以像Python dicts一样使用索引来检索soup元素的属性,因此可以获得
content
属性的值,如下所示:为了提取URL值,可以只需查找第一个等号并获取字符串的其余部分。我更喜欢使用一种更规范的方法,在分号处拆分,然后在等号(只有一个)上拆分右侧元素。在
要从meta标记的url中获取子字符串,您需要使用一些正则表达式。你可以试试这个
soup = BeautifulSoup(<your html string>) meta_url = soup.noscript.meta['content'] url = re.search('\-\/(.*)\?', meta_url).group(1) print url print soup.title.text
希望上面的代码能解决您的问题。在
相关问题 更多 >
编程相关推荐