我需要从某些零售商产品页面中抓取一些网址,但我需要获取的具体网址不在网页的html部分。对于每个人都可以点击进入带有我需要抓取的URL的页面,html看起来像这样:
<div id="name" class="hand bold" onclick="AVON.productcontrol.Go(45714);">ADVANCE TECHNIQUES Color Protection Conditioner Bonus Size</div>
我写了以下内容以从网页获取网址,但由于我需要的实际网址似乎没有存储在网页中,因此无法满足我的需求:
def getUrls(URL):
"""input: product page url
output: list of urls to products
"""
connection = urllib.urlopen(URL)
dom = lxml.html.fromstring(connection.read())
selAnchor = CSSSelector('a')
foundElements = selAnchor(dom)
urlList = [e.get('href') for e in foundElements]
return urlList
有没有办法获得'onclick'之后的功能链接(我想AVON.productcontrol.Go(#);)带你去?我并不完全理解html,虽然我已经阅读了一些关于onclick的内容,但我无法弄清楚该功能在&#39; onclick&#39;作品。
答案 0 :(得分:0)
为了找到您点击的URL,您需要找到“Go”功能的JavaScript源代码并阅读并理解它。它隐藏在标记内或某些JavaScript .js文件中,该文件由HTML页面直接或间接引用。快乐挖掘!
或者:您使用Selenium(http://docs.seleniumhq.org/)之类的工具自动与网页进行互动,只需点击即可查看您的网页。