我使用要求和LXML与的Python,我已经看到有很多关于网页抓取不同的模块,但没有任何理由在选择一个另一个?你可以使用request/lxml来做同样的事情吗?例如BeautifulSoup?
无论如何,这里是我的实际的问题;
这是我的代码:
import requests
from lxml import html
# Login data
inputUrl = 'http://forum.mytestsite.com/login'
usr = 'myusername'
pwd = 'mypassword'
payload = dict(login=usr, password=pwd)
# Open session
with requests.Session() as s:
# Login
s.post(inputUrl, data=payload)
# Get page data
pageResult = s.get('http://forum.mytestsite.com/icons/', allow_redirects=False)
pageResult = html.fromstring(pageResult.content)
pageIcons = pageResult.xpath('//script[@id="table-icons"]/text()')
print pageIcons[0]
结果打印时pageIcons [0]:
{{#each icons}}
{{/each}}
这是生成的网站/ js代码图标:
{{#each icons}}
{{/each}}
而这里的页面上的结果:
我的目标:
我想要做的是检索所有的li data手柄,但我一直无法弄清楚如何检索这些数据。所以我的目标是检索所有的图标路径和他们的头衔,有谁能帮我解决这个问题吗?我真的很感激任何帮助:)
2017-06-18
Lorena
+0
'// script'不是呈现的HTML的一部分。你为什么试图解析模板代码? –
+0
嗯,因为我是一个noob:P我是因为脚本的结果给了我实际上想要的ul/li句柄,所以这样做是合乎逻辑的。我的意思是,渲染的HTML是从脚本生成的,对吧?我还能如何获得链接? –
+0
您无法从python请求获取模板代码。另外,如果它在页面加载后呈现,那么您会得到一个空列表,并且无论如何您都不能使用请求。 https://stackoverflow.com/questions/13960567/reading-dynamically-generated-web-pages-using-python –