Heim > Fragen und Antworten > Hauptteil
1) Was ich einfangen möchte, sind die Fans einer bestimmten Berühmtheit auf Instagram
2) Die Instagram-PC-Site verwendet viel JS-Rendering
3) Ich habe noch nie einen Crawler geschrieben und der Chef wird die Daten morgen brauchen
Ich verwende derzeit BeautifulSoup
, selenium
和phantomjs
Die Code-Demo ist wahrscheinlich
driver = webdriver.PhantomJS(self.browser)
driver.get(self.url)
driver.implicitly_wait(3)
element = driver.find_element_by_class_name("_s53mj")
element.click()
html = driver.page_source
soup = BeautifulSoup(html)
Das Problem ist:
1) Ich weiß nicht, ob der Klick erfolgreich ausgeführt wird, ob das Element des Klicks korrekt ist, der Treiber scheint keinen Rückgabewert für meine Referenz zu haben
2) Selbst wenn der Klick erfolgreich ist, schon Es passt nur die Click-Methode (in js) an. Was soll ich tun, wenn das Ziel nicht ausgelöst wird? 3) Ich weiß nicht, ob es zuerst gerendert wird. Wenn der Klick erfolgreich ausgeführt wird, wird er nicht an die Quelle zurückgegeben ?
Ah, vielen Dank an alle Reptilienmeisterpage_source
, 还是 应该先 click
我想大声告诉你2017-06-28 09:24:20
说的是什么意思?百思不得其解啊。。。
selenium自动化,click能模仿用户点击,就跟你自己在页面上点击一样,一切都在虚拟浏览器驱动中进行。
看你的业务逻辑啊。。。比如有些数据要点击后才有,那就先click再获取源代码。