Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用BeautifulSoup解析HTML标记时,该标记显示为空,但在浏览器中打开时,该标记包含内容_Javascript_Python_Html_Beautifulsoup - Fatal编程技术网

Javascript 使用BeautifulSoup解析HTML标记时,该标记显示为空,但在浏览器中打开时,该标记包含内容

Javascript 使用BeautifulSoup解析HTML标记时,该标记显示为空,但在浏览器中打开时,该标记包含内容,javascript,python,html,beautifulsoup,Javascript,Python,Html,Beautifulsoup,我在通过BS4解析html页面时遇到问题。我在html页面中有一个隐藏的div,我想使用BeautifulSoup读取其中的内容。其内容由javascript函数动态生成,该函数通过body onload触发 问题是:当我在浏览器中调用页面时,标签包含了它应该包含的内容。当我通过BS4解析同一个页面时,标签是空的 我找不到任何关于BS4无法处理重载javascript生成内容的信息,因此不确定这里可能存在什么问题 Python脚本: import urllib.request from bs4

我在通过BS4解析html页面时遇到问题。我在html页面中有一个隐藏的div,我想使用BeautifulSoup读取其中的内容。其内容由javascript函数动态生成,该函数通过body onload触发

问题是:当我在浏览器中调用页面时,标签包含了它应该包含的内容。当我通过BS4解析同一个页面时,标签是空的

我找不到任何关于BS4无法处理重载javascript生成内容的信息,因此不确定这里可能存在什么问题

Python脚本:

import urllib.request
from bs4 import BeautifulSoup

import time
import datetime
eT = time.time()

version = 1
vNum = str(version)

t = datetime.datetime.now()

d = "0" + str(t.day)
#d = d.rstrip()
d = d[-2:]
m = "0" + str(t.month)
#m = m.rstrip()
m = m[-2:]
y = str(t.year)

dStr = y + m + d

resultFile = 'output/classAndIdList-' + dStr + '-v' + vNum + '.txt'
pageListFile = 'input/quickListFR.txt'
f = open(pageListFile, mode='r', encoding='utf-8')

urlRoot = 'http://dev.example.com/'

fOut = open(resultFile, 'w')
ciList = []

# for url in urls.split('\n'):
for l in f:
    u = l.rstrip()  
    url = urlRoot + u
    html_content = urllib.request.urlopen(url)
    time.sleep(1)
    html_text = html_content.read()
    soup = BeautifulSoup(html_text)
    ciTag = soup.find(id="testDivCSS")
    print(ciTag)
    ciString = ciTag.get_text()
    # print(ciString)
    ciArray = ciString.split(',')
    # print(ciArray)
    for c in ciArray:
        if c not in ciList:
            ciList.append(c)
            fOut.write(c + '\n')
            print(c)
    print(u + '... DONE')       
fOut.close()
通过BeautifulSoup的结果页面示例:

Example-page-1.html... DONE
<div id="testDivCSS" style="display: none;"> </div>
Example-page-1.html。。。完成
浏览器中的div(表示php和javascript部分工作正常):

div#菜单右上、div#社交、div#边栏、div#特定、div#菜单右下、div#页脚

BeautifulSoup无法通过javascript处理动态生成内容。 您可以先使用浏览器自动化工具(如selenium)帮助获取整个页面(包括动态部分),然后使用BeautifulSoup解析页面

关于这个问题:

<div id="testDivCSS" style="display: none;">div#menu_rightup,div#social,div#sidebar,div#specific,div#menu_rightdown,div#footer</div>