2016-11-24 1 views
1

ich webscrape bin versucht, mit Python, die Kommentare von einem BBC-Artikel: http://www.bbc.co.uk/news/education-37750489/comments?comments_page=1&initial_page_size=10&filter=none&sortBy=Created&sortOrder=Descending#Scraping Javascript geladen Seiten mit Python

Die Kommentare Modul ist in Javascript, mit Tasten für die nächsten Seiten. Allerdings kann ich keine AJAX-URL finden - es gibt einen Link von einem Blick auf die Netzwerkkonsole, aber das funktioniert nicht: https://ssl.live.bbc.co.uk/modules/comments/?siteId=newscommentsmodule&parentUri=http%3A%2F%2Fwww.bbc.co.uk%2Fnews%2Feducation-37750489%2Fcomments&forumId=__CPS__37750489

Allerdings möchte ich mehrere Seiten kratzen, aber wenn ich es versuche und ändere die 'page = x' auf der ersten Seite, es bringt mich nur auf die erste Seite.

Ich habe über die Verwendung von Selenium/Dryscape nachgedacht, aber ich bin nicht sicher, wie ich zu jeder der Seiten gelangen kann, um sie auszuführen.

+0

"Ich habe an Selenium/Dryscape gedacht, aber ich bin mir nicht sicher, wie ich auf die einzelnen Seiten gelangen kann, um sie auszuführen." Kannst du das mehr erklären? Ich verstehe das Problem nicht. –

+0

Ich muss einen Weg finden, um zu einer URL für jede der Kommentarseiten zu kommen, um ein Kratzen auszuführen. Ich dachte daran, einen Screen Scraper wie Selenium oder Dryscrape laufen zu lassen, aber ich brauche immer noch eine URL, um auf jede Seite zugreifen zu können, oder? – cstaff91

+0

teilen Sie den Code, den Sie bisher versucht haben – thebadguy

Antwort

0

können Sie versuchen, den copy as Curl Befehl durch Rechtsklick auf die XHR-Anfrage im Netzwerkbereich.

das ist, was ich

curl "https://ssl.bbc.co.uk/modules/comments/ajax/comments/?siteId=newscommentsmodule^&forumId=__CPS__37750489^&filter=none^&sortOrder=Descending^&sortBy=Created^&mock=0^&mockUser=^&parentUri=http^%^3A^%^2F^%^2Fwww.bbc.com^%^2Fnews^%^2Feducation-37750489^%^2Fcomments^%^3Fcomments_page^%^3D1^%^26initial_page_size^%^3D10^%^26filter^%^3Dnone^%^26sortBy^%^3DCreated^%^26sortOrder^%^3DDescending^&loc=en-GB^&preset=responsive^&initial_page_size=10^&transTags=0^&comments_page=4" -H "Origin: http://www.bbc.com" -H "Accept-Encoding: gzip, deflate, sdch, br" -H "Accept-Language: en-US,en;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.44 Safari/537.36" -H "Accept: application/json, text/javascript, */*; q=0.01" -H "Referer: http://www.bbc.com/news/education-37750489/comments?comments_page=1^&initial_page_size=10^&filter=none^&sortBy=Created^&sortOrder=Descending" -H "Cookie: BBC-UID=f5b82387c6a5f59cfb1e4e702165956d3c4a59fc40f0a0cc2289331f59e23c7f0Mozilla^%^2f5^%^2e0^%^20^%^28Windows^%^20NT^%^2010^%^2e0^%^3b^%^20Win64^%^3b^%^20x64^%^29^%^20AppleWebKit^%^2f537^%^2e36^%^20^%^28KHTML^%^2c^%^20like^%^20Gecko^%^29^%^20Chrome^%^2f55^%^2e0^%^2e2883^%^2e44^%^20Safari^%^2f537^%^2e36; BGUID=e50803c74685961b76a3bae761e263da9bbf269019d8d4abbed18707f72c1098; s1=208.5.385837657400859000FDD0E52985" -H "Connection: keep-alive" --compressed 

oder Sie Selen verwenden können, auf die Paginierung Tasten

driver.find_element_by_css_selector('li.comments-pagination-page.comments-pagination-page-{} a'.format(pageNumber)).click() 

hier die li.comments-pagination-page.comments-pagination-page-3 die li-Tag für die 3. Paginierung Knopf klicken auf der Seite direkt .