0
当我运行我的刮板来获取下一页的href链接时,我可以看到它提取[javascript:void(0);]而不是传统的href。无论如何,我无法使用它。如果有人仔细研究并提供解决方法,会很开心。我正在使用的代码:分页链接被刮掉的项目并不常见href
import requests
from lxml import html
url="http://www.findanarchitect.com.au/index.php"
def Endpoint(Address):
payload = {'action':'show_search_result','action_spam':'dDfgEr','txtSearchType':5,'txtPracName':'','optSstate':3,'optRegions':23,'txtPcode':'','txtShowBuildingType':0,'optBuildingType':1,'optHomeType':1,'optBudget':''}
response = requests.post(Address, data = payload)
tree=html.fromstring(response.text)
titles=tree.xpath('//div[@id="pagination"]')
for title in titles:
Links=title.xpath('.//li[@class]/a/@href')
for Link in Links:
print(Link)
Endpoint(url)
HTML元素驻留内:
<div id="pagination">
<br><div style="float:left">Page 1 of 23 </div>
<ul>
<li class="current"><a href="javascript: void(0);" onclick="js_goto_page(1)">1</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(2)">2</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(3)">3</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(4)">4</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(5)">5</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(6)">6</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(7)">7</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(8)">8</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(9)">9</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(10)">10</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(11)">[11-20]</a></li><li class=""><a href="javascript: void(0);" onclick="js_goto_page(21)">[21-23]</a></li>
</ul>
</div>
结果我得到:
谢谢VMRuiz,为你解答。我的头旋转着看你的代码。它是用JavaScript编写的吗?我已经通过放弃JavaScript标记来纠正我的帖子,因为JavaScript中的编码超出了我的能力。 – SIM
是的,它的JavaScript,但你不需要编写任何代码。您只需要按照与该脚本相同的方式生成下一页的URL。看看'furl'的行 – VMRuiz