我是个编程新手,如果我犯了什么愚蠢的错误,请原谅。下面是我在使用Python及其xpath函数后的HTML解析结果。不幸的是,我无法准确访问我感兴趣的网站部分(变量wiki3-wiki8不返回元素,只返回空的“[]”)。该程序只提取列表的第一个元素wiki2=/div[1],但它的子元素wiki3=/div[1]/a,也没有它的任何兄弟元素,例如wiki4=*/div[2],所有这些我都需要。
我认为问题可能与我尝试访问的网站内容是动态创建的,即列表中8000个元素中只有前12个元素被显示出来-只有当一个元素向下滚动到页面底部时,其他元素才会出现在屏幕上(java脚本似乎对此负责,请参阅HTML源代码中的wiki7)。
下面的材料包含两个部分-第一部分是程序的Python输出,而第二部分显示了我感兴趣的网页HTML主体部分。
用于HTML解析的Python脚本(当前仅设计为查看xpath是否可以捕获网站的所有部分):Python 3.5.1rc1 (v3.5.1rc1:948ef16a6951, Nov 22 2015, 23:41:41) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import lxml
>>> import requests
>>> from lxml import html
>>> page=requests.get('http://www.wikifolio.com/de/Invest/SearchWikifolio#/?tags=aktde,akteur,aktusa,akthot,aktint,etf,fonds,anlagezert,hebel&media=true&private=true&assetmanager=true&theme=true&super=true&WithoutLeverageProductsOnly=true')
>>> tree=html.fromstring(page.content)
>>> wiki1=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]')
>>> wiki1
[]
>>> wiki2=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]/div[1]')
>>> wiki2
[]
>>> wiki3=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]/div[1]/a')
>>> wiki3
[]
>>> wiki4=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]/div[2]')
>>> wiki4
[]
>>> wiki5=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]/div[19]')
>>> wiki5
[]
>>> wiki6=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]/div[37]')
>>> wiki6
[]
>>> wiki7=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]/a')
>>> wiki7
[]
>>> wiki8=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/form/div[2]/div/div[2]/script[3]')
>>> wiki8
[]
>>> wiki9=tree.xpath('/html/body/div[3]/div/div[2]/div[4]/script')
>>> wiki9
[]
>>>
HTML源代码(包括在****中手动添加的变量名):
^{pr2}$
有人知道为什么只有部分可访问的网站内容存在这个问题,我如何才能绕过它?
我承诺永远感激能帮助我的人!谢谢:)