Lorsque j'ai exploré une page Web, j'ai remarqué que son changement de page était implémenté par une telle fonction. Après avoir tourné la page, l'URL de la page n'a pas changé :
.<input class="buttonJump" name="goto2" onclick="dirGroupMblogToPage(document.getElementById('dirGroupMblogcp2').value)" type="button" value="Go"/>
</input>
function dirGroupMblogToPage(currentPage){
jQuery.post("dirGroupMblog.action", {"page.currentPage":currentPage,gid:MI.TalkBox.gid}, function(data){$("#talkMain").html(data);
window.scrollTo(0, $css.getY(MI.talkList._body)-65);
});
}
Écrit une fonction comme celle-ci pour essayer de tourner les pages :
def login_page(login_url, content_url, usr_name="******@126.com", passwd="******"):
# 实现登录, 返回Session对象和获得的页面
post_data = {'r': 'on', 'u': usr_name, 'p': passwd}
s = requests.Session()
s.post(login_url, post_data)
r = s.get(content_url)
return s, r
def turn_page(s, next_page, content_url):
post_url = "http://sns.icourses.cn/dirGroupMblog.action"
post_headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
"X-Requested-With":"XMLHttpRequest"}
post_data = {"page.currentPage": next_page, "gid": 2632}
s.post(post_url, data=post_data, headers = post_headers)
res = s.get(content_url)
return res
Mais le tournage de page a échoué après avoir appelé turn_page(). Comment devrions-nous résoudre ce problème ? De plus, quel type de connaissances devons-nous apprendre par nous-mêmes pour résoudre ce genre de problème ? Merci !
Il est recommandé d'utiliser du sélénium
Par exemple, si vous devez cliquer sur le bouton de la page suivante sur l'interface, ou si vous devez saisir les touches haut, bas, gauche et droite, la page peut être tournée, Selenium Webdriver peut le faire et donner une référence (J'avais l'habitude d'explorer les romans du site chinois Qidian)
Selenium peut interagir avec la page, cliquer, double-cliquer, entrer, attendre que la page se charge (attente implicite et attente explicite). . . .
Il existe plusieurs situations,
Vous pouvez utiliser l'analyse de réseau dans les outils de développement de Chrome pour obtenir le résultat, qu'il s'agisse d'une page html ou d'un rendu json de feedback.1. La page peut être tournée en glissant ou en cliquant via l'effet js ;
2. La page peut être tournée en cliquant sur l'hyperlien ;
json est plus facile à gérer, il suffit d'obtenir le résultat directement. Les pages HTML ordinaires doivent utiliser une correspondance régulière avec les sauts de page. Ensuite, placez le lien dans le pool à explorer.
/a/11...