I verwendet Selen und PhantomJS der Hoffnung, Daten von einer Website zu erhalten, die mit Hilfe von Javascript das DOM zu bauen.Python Crawler DOM Informationen zu erhalten, indem Selen und PhantomJS mit
Der folgende einfache Code funktioniert, ist aber nicht immer gültig. Ich meinte, dass es die meiste Zeit eine leere Website zurückgeben würde, die das Javascript nicht ausführte. Es könnte selten die richtigen Informationen bekommen, die ich möchte.
from selenium import webdriver
from bs4 import BeautifulSoup
url = 'http://mall.pchome.com.tw/prod/QAAO6V-A9006XI59'
driver = webdriver.PhantomJS
driver.get(url)
print(driver.page_source, file=open('output.html','w'))
soup = BeautifulSoup(driver.page_source,"html5lib")
print(soup.select('#MetaDescription'))
Es hat eine hohe Wahrscheinlichkeit, einen leeren String zurück:
[<meta content="" id="MetaDescription" name="description"/>]
Ist der Website-Server nicht Web-Crawler ermöglicht? Was kann ich tun, um meinen Code zu reparieren?
Was mehr ist, können alle Informationen, die ich brauche, im Tag <head>
sein. (Wie oben gezeigt, haben die Daten eine ID MetaDescription
)
Oder gibt es einen einfacheren Weg, um nur die Daten in Tag zu bekommen?
'supp.select ('head')'? Wie auch immer, hast du versucht, ein wenig zu warten? –