Sie können nicht interagieren mit Javascript BeautifulSoup verwenden, können Sie Selen verwenden, das Element zu klicken, um es mit PhantomJS für Headless-Browsing:
from selenium import webdriver
dr = webdriver.PhantomJS()
dr.get("www.foo.bar/baz")
dr.find_element_by_xpath("//a[@href='javascript:showContent()']").click()
XPath das Element finden, dann simulieren wir einen Klick welche geben sollte du, was du brauchst.
Die Seite nehme ich an in Spanisch ist so die href ist eigentlich javascript:muestradulto()
:
dr.find_element_by_xpath("//a[@href='javascript:muestradulto()']").click()
Sobald der Link angeklickt wird und Sie print(dr.page_source)
, Sie werden sehen, Sie auf der nächsten Seite erhalten, die EL BUSCANUNCIOS
in der Nähe der Spitze hat:
In [1]: url = "http://www.pasion.com/amistad/"
In [2]: from selenium import webdriver
In [3]: dr = webdriver.PhantomJS()
In [4]: dr.get(url)
In [5]: dr.find_element_by_xpath("//a[@href='javascript:muestradulto()']").click()
In [6]: print("EL BUSCANUNCIOS" in dr.page_source)
True
Wenn Sie es vorziehen BS4 verwenden Sie die Quelle zu BeautifulSoup passieren kann und die Arbeit an, dass weg, aber Selen können Sie XPath und eine viel größere Auswahl an CSS-Selektoren, die Sie mehr nützlich finden könnten.
Eigentlich, wenn man sich anschaut, was die Seite zurückkehrt, die Sie tatsächlich den Quellcode erhalten nur Anfragen verwenden, die Verbindung muss nur auf der Webseite angeklickt werden:
In [14]: from requests import get
In [14]: from bs4 import BeautifulSoup
In [15]: soup = BeautifulSoup(get(url).content)
In [16]: print(soup.select("#cuerpo div[class^=x]")[:2])
[<div class="x1"><div class="x2">\n<div class="x3"></div>\n<div class="x4">Amistad en Barcelona i rodalies (BARCELONA)</div>\n<div class="x5">r508491244 </div>\n<div class="x6" style="font-size:8px"><a href="/creditos/auto-renueva.php" style="color:#ee0000">AUTO\xb7RENUEVA</a></div>\n</div>\n<div class="x9"><a class="cti" href="para-mujer-busque-amistad-508491244.htm" target="_blank">PARA MUJER BUSQUE AMISTAD</a><br/><div class="tx"> Deseo coincidir con una mujer que busque una relaci\xf3n de amistad continuada con un hombre maduro, tranquilo, educado, cari\xf1oso y de trato f\xe1cil. No tengo pareja y ahora no la busco. Busco una amiga para pasear, hablar, echar unas risas, caf\xe9s, cines, conciertos, etc. No me importa para nada la talla de suje ni de pantal\xf3n que usas, ni tu edad, ni tampoco si tienes eso que ahora se llaman cargas. Soy un tipo normal y busco lo mismo. Si necesitas algo m\xe1s, tambi\xe9n lo podemos hablar. Con afecto. Dani. Edad 54 a\xf1os</div><br/> <div class="x11">\n</div>\n</div>\n<div class="x10" id="ph508491244" style="width: auto">\n</div></div>, <div class="x2">\n<div class="x3"></div>\n<div class="x4">Amistad en Barcelona i rodalies (BARCELONA)</div>\n<div class="x5">r508491244 </div>\n<div class="x6" style="font-size:8px"><a href="/creditos/auto-renueva.php" style="color:#ee0000">AUTO\xb7RENUEVA</a></div>\n</div>]
Also eigentlich brauchen Sie nicht zu sich darum kümmern, irgendetwas anzuklicken.
können Sie den Link teilen? –
@ Xar, wie Padraic sagte. Selen ist Ihre beste Wahl. Sehen Sie sich das Framework [slack] (https://github.com/Wykleph/Slack) an, da es Ihnen helfen kann, die Dinge organisiert zu halten. – DuckPuncher
@PadraicCunningham die URL ist http://www.pasion.com/amistad/ Sie müssen auf "Entrar" klicken, um auf den echten Inhalt zuzugreifen. – Xar