2017-11-15 2 views
0

Ich muss die Nachrichten von mehreren Seiten mit Javascript analysieren und verwenden Selen + PhantomJS dafür. Aber es gibt Videos auf diesen Seiten, die für mich nutzlos sind und ich brauche sie überhaupt nicht. (Ich bekam einen Ratschlag, Selen + Chrom oder Selen + Firefox zu benutzen, aber ich brauche keine Fenster beim Parsen).Selenium Python Arten von Inhalt laden Einschränkungen

Diese Videos beginnen automatisch zu spielen nach der Logik der Website, und am Ende des Endes Ausnahme http.client.RemoteDisconnected: Remote end closed connection without response wirft.

Ich denke, es wirft, weil mein Internet ist sehr langsam und Videos können nicht voll damit geladen werden.

Wie kann ich dieses Problem vermeiden?

Kann jede Inhalt Einschränkungen im Selen oder PhantomJS existieren?

Vollzurückverfolgungs:

File "viralnova/viralnova.py", line 101, in parse_viralnova 
    _parse_post_link(postlinktest, driver) 
    File "viralnova/viralnova.py", line 9, in _parse_post_link 
    driver.get(post_link) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 309, in get 
    self.execute(Command.GET, {'url': url}) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 295, in execute 
    response = self.command_executor.execute(driver_command, params) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 464, in execute 
    return self._request(command_info[0], url, body=data) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/site-packages/selenium/webdriver/remote/remote_connection.py", line 526, in _request 
    resp = opener.open(request, timeout=self._timeout) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/urllib/request.py", line 526, in open 
    response = self._open(req, data) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/urllib/request.py", line 544, in _open 
    '_open', req) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/urllib/request.py", line 504, in _call_chain 
    result = func(*args) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/urllib/request.py", line 1346, in http_open 
    return self.do_open(http.client.HTTPConnection, req) 
    File "/Users/user/anaconda/envs/env/lib/python3.6/urllib/request.py", line 1321, in do_open 
    r = h.getresponse() 
    File "/Users/user/anaconda/envs/env/lib/python3.6/http/client.py", line 1331, in getresponse 
    response.begin() 
    File "/Users/user/anaconda/envs/env/lib/python3.6/http/client.py", line 297, in begin 
    version, status, reason = self._read_status() 
    File "/Users/user/anaconda/envs/env/lib/python3.6/http/client.py", line 266, in _read_status 
    raise RemoteDisconnected("Remote end closed connection without" 
http.client.RemoteDisconnected: Remote end closed connection without response 

-Code hier ist

def _parse_post_link(post_link, driver): 
    try: 
     driver.get(post_link) 
    except Exception: 
     return None 

    post_page_soup = Soup(driver.page_source, "lxml") 
    title = post_page_soup.find('div', attrs={'class': 'post-box-detail article'}).h2.text 
    print(title) 

def parse_viralnova(to_csv=True): 
    driver = webdriver.PhantomJS("/Users/user/.phantomjsdriver/phantomjs") 
    postlinktest = 'http://www.viralnova.com/restroom-design-fails/' 
    _parse_post_link(postlinktest, driver) 
+0

Browser im Headless-Modus verwenden? –

+0

Ja, ich brauche keine Fenster zu öffnen – h3llca7

+0

Können Sie den vollständigen Fehler-Stack-Trace bereitstellen? – DebanjanB

Antwort

0

Wenn es nur ist den Textinhalt Parsen, die Sie nach, können Sie nur Python and BeautifulSoup mit in Betracht ziehen. Sie sollten auf diese Weise nichts im Browser auslösen, da Sie gar keinen verwenden (Sie haben erwähnt, dass Sie kein Windows öffnen müssen), und gleichzeitig wird die Lösung schneller ausfallen als der Browser-Overhead.

Wenn Sie Javascript benötigen, können Sie auch versuchen, dryscape zu verwenden.

+0

Es gibt Javascript auf den Seiten, die ich analysieren muss und das Requests-Modul, das ich auch versucht hatte, lud nicht – h3llca7

+0

Es wurde nicht in Ihrer ursprünglichen Frage erwähnt, aber eine Antwort auf diese würde verwenden dryscape: https://Stackoverflow.com/a/26440563/5298879 um es auf Windows zu arbeiten, müssen Sie auch Cygwin installieren – Zegarek