Scraping 'N' Seiten mit Beautifulsoup und Requests (Wie bekomme ich die wahre Seitennummer)

Ich möchte alle Titel () auf der Website bekommen.

http://www.shyan.gov.cn/zwhd/web/webindex.action 

Jetzt kratzt mein Code erfolgreich nur eine Seite. Allerdings gibt es mehrere Seiten auf der Website oben, in denen ich gerne zu kratzen.

Zum Beispiel, mit der URL oben, wenn ich auf den Link auf "Seite 2" klicken, ändert sich die gesamte URL nicht. Ich schaute auf die Seitenquelle und sah Javascript-Code, um auf die nächste Seite wie folgt vorzugehen: Javascript: gotopage (2) oder javascript: void (0). Mein Code ist hier (Seite 1)

 from bs4 import Beautifulsoup import requests url = 'http://www.shyan.gov.cn/zwhd/web/webindex.action' r = requests.get(url) soup = Beautifulsoup(r.content,'lxml') titles = soup.select('td.tit3 > a') for title in titles: print(title.get_text()) 

Wie kann mein Code geändert werden, um Titel aus allen verfügbaren Seiten zu kratzen? Vielen Dank!

One Solution collect form web for “Scraping 'N' Seiten mit Beautifulsoup und Requests (Wie bekomme ich die wahre Seitennummer)”

Versuchen Sie, das folgende URL-Format zu verwenden:

http://www.shiyan.gov.cn/zwhd/web/webindex.action?keyWord=&searchType=3&page.currentpage=2&page.pagesize=15&page.pagecount=2357&docStatus=&sendOrg=

Die Website verwendet Javascript, um versteckte Seiteninformationen an den Server weiterzugeben, um die nächste Seite anzufordern. Wenn du die Quelle siehst, findest du:

 <form action="/zwhd/web/webindex.action" id="searchForm" name="searchForm" method="post"> <div class="item"> <div class="titlel"> <span>留言查询</span> <label class="dow"></label> </div> <input type="text" name="keyWord" id="keyword" value="" class="text"/> <div class="key"> <ul> <li><span><input type="radio" checked="checked" value="3" name="searchType"/></span><p>编号</p></li> <li><span><input type="radio" value="2" name="searchType"/></span><p>关键字</p></li> </ul> </div> <input type="button" class="btn1" onclick="search();" value="查询"/> </div> <input type="hidden" id="pageIndex" name="page.currentpage" value="2"/> <input type="hidden" id="pageSize" name="page.pagesize" value="15"/> <input type="hidden" id="pageCount" name="page.pagecount" value="2357"/> <input type="hidden" id="docStatus" name="docStatus" value=""/> <input type="hidden" id="sendorg" name="sendOrg" value=""/> </form> 
  • Selen kann kein Web-Element anzeigen
  • Benötige xpath-Locators für sichtbare Elemente
  • Python Selen (Warten auf Rahmen, Element-Lookups)
  • Webdriver-Fehler: "Kein Alarm ist vorhanden", nachdem UnexpectedAlertPresentException ausgelöst wurde
  • Selen: Iterieren durch Gruppen von Elementen
  • Kann nicht herausfinden, python selenium webdriver move_to_element Funktionalität
  • Starten von Selen aus Python auf Ubuntu
  • Wie vermeide ich mich immer wieder in meine Konten einloggen, Selenium Python Mac
  • Fehler bei der Anmeldung auf der Webseite mit Selen mit Python
  • Wie bekomme ich HTML mit Javascript gerendert Quellcode mit Selen
  • Selen Verwendung von Firefox-Profil
  • Python ist die beste Programmiersprache der Welt.