扫描一些网站,并希望获得所有的java脚本文件名称和内容。我尝试使用BeautifulSoup的python请求,但无法获取脚本详细信息和contents.am我错过了什么?
我一直在尝试很多方法来寻找,但我觉得在黑暗中磕磕绊绊。这是我正在尝试的代码
导入请求
来自bs4 进口 BeautifulSoup
r =请求。得到(“http://www.marunadanmalayali.com/”)
汤= BeautifulSoup(r.content)
大家在学python的时候肯定会遇到很多难题,以及对于新技术的追求,这里推荐一下我们的Python学习扣qun:784758214,这里是python学习者聚集地!!同时,自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每日分享一些学习的方法和需要注意的小细节
您可以使用以下代码获取所有链接的JavaScript代码:
-
soup.find_all('script')
返回<script>
页面中所有标签的列表。 -
一个列表理解这里使用循环遍历其返回的列表中的所有元素
soup.find_all('script')
。 -
i
是一个类似于dict的对象,用于.get('src')
检查它是否具有src
属性。如果没有,请忽略它。否则,将其放入一个列表(l
在示例中调用)。
输出,在这种情况下如下所示:
[ 'http://adserver.adtech.de/addyn/3.0/1602/5506153/0/6490/ADTECH ; loc = 700; target = _blank; grp = [group]',
'http://tags.expo9。 exponential.com/tags/MarunadanMalayalicom/ROS/tags.js '
'http://tags.expo9.exponential.com/tags/MarunadanMalayalicom/ROS/tags.js ',
' http://js.genieessp.com/吨/ 057/794 / a1057794.js '
'http://ib.adnxs.com/ttj?id=5620689&cb= [ CACHEBUSTER ]&pubclick = [ INSERT_CLICK_TAG ]',
' http://ib.adnxs.com/ttj ?ID = 5531763 ”,
'http://advs.adgorithms.com/ttj?id=3279193&cb= [ CACHEBUSTER ]&pubclick = [ INSERT_CLICK_TAG ]',
'http://xp2.zedo.com/jsc/xp2/fo.js ',
'http://www.marunadanmalayali.com/js/mnmads.js ',
“http://www.marunadanmalayali.com/js /jquery-2.1.0.min.js '
'http://www.marunadanmalayali.com/js/jquery.hoverIntent.minified.js ',
' http://www.marunadanmalayali.com/js/jquery.dcmegamenu .1.3.3.js '
'http://www.marunadanmalayali.com/js/jquery.cookie.js ',
'http://www.marunadanmalayali.com/js/swanalekha-ml.js ',
' HTTP :?//www.marunadanmalayali.com/js/marunadan.js R = 1875年 '
'http://www.marunadanmalayali.com/js/taboola_home.js ',
' http://d8.zedo.com/jsc /d8/fo.js ']
我的代码错过了一些链接,因为它们实际上不在HTML源代码中。
您可以在控制台中看到它们:
但他们不在源头:
通常,那是因为这些链接是由JavaScript生成的。并且该requests
模块不会像真正的浏览器一样在页面中运行任何JavaScript - 它只发送获取HTML源的请求。
如果您还需要它们,则必须使用另一个模块在该页面中运行JavaScript,然后您可以看到这些链接。为此,我建议使用selenium - 它运行一个真正的浏览器,以便它可以在页面中运行JavaScript。
例如(确保您已经安装了selenium和Web驱动程序):
来自bs4 进口 BeautifulSoup
来自selenium import webdriver
驱动= webdriver.Chrome()#使用铬驱动器用于例如
驱动程序。得到('http://www.marunadanmalayali.com/')
soup = BeautifulSoup(driver.page_source,“html.parser”)
l = [i。获得(“SRC”)为我在 soup.find_all(“脚本”),如果我。得到('src')]
__import __('pprint').pprint(l)
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
网友评论