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