想要使用bs4从html获取所有java脚本文件

时间:2016-03-10 09:11:36

标签: python-2.7 bs4

from bs4 import BeautifulSoup
import re
import HTMLParser
import urllib
url = raw_input('enter - ')
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
scripts=soup.find_all('script')
for tag in scripts:
    try:
      Script = tag["src"]
      print Script
    except:
      print "No source"

使用此代码我没有从html文档中获取所有java脚本。

2 个答案:

答案 0 :(得分:0)

我检查了你的代码,似乎你得到了所有的javascript。至少你检查所有的标签。当然,一些javascript可以直接嵌入到html中,从而不会有src属性。仅仅是values(integer(substr('000000',3,2))) 1 ----------- 0 1 record(s) selected. 标签之间的实际javascript。您可以在循环中使用<script>...</script>在这些嵌入式标记之间获取javscript。

此外,我建议指定一个解析器。默认情况下,bs4使用tag.contents。其他解析器可以更好/不同地执行。查看:http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser

答案 1 :(得分:0)

from bs4 import BeautifulSoup
import urllib2

r = urllib2.urlopen('<your url>').read()
soup = BeautifulSoup(r, 'html.parser')

for s in soup.findAll('script'):
    print s.get('src')