10

Webページから解析した後にスクリプトの場所を抽出するpythonスクリプトを書いています。2 つのシナリオがあるとします。

<script type="text/javascript" src="http://example.com/something.js"></script>

<script>some JS</script>

2 番目のシナリオ、つまり JS がタグ内に記述されている場合から JS を取得できます。

しかし、最初のシナリオから src の値を取得する方法はありますか (つまり、http://example.com/something.jsなどのスクリプト内の src タグのすべての値を抽出します) 。

これが私のコードです

#!/usr/bin/python

import requests 
from bs4 import BeautifulSoup

r  = requests.get("http://rediff.com/")
data = r.text
soup = BeautifulSoup(data)
for n in soup.find_all('script'):
    print n 

出力: 一部の JS

必要な出力: http://example.com/something.js

4

3 に答える 3

26

それらが存在する場合にのみ、すべてのsrc値を取得します。または、その<script>タグをスキップします

from bs4 import BeautifulSoup
import urllib2
url="http://rediff.com/"
page=urllib2.urlopen(url)
soup = BeautifulSoup(page.read())
sources=soup.findAll('script',{"src":True})
for source in sources:
 print source['src']

src結果として次の2つの値を取得しています

http://imworld.rediff.com/worldrediff/js_2_5/ws-global_hm_1.js
http://im.rediff.com/uim/common/realmedia_banner_1_5.js

これはあなたが望むものだと思います。これが役に立つことを願っています。

于 2013-09-11T09:42:26.077 に答える
5

スクリプト ノードから 'src' を取得します。

import requests 
from bs4 import BeautifulSoup

r  = requests.get("http://rediff.com/")
data = r.text
soup = BeautifulSoup(data)
for n in soup.find_all('script'):
    print "src:", n.get('src') <==== 
于 2013-09-11T05:16:37.650 に答える