Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确获取URL';使用SeleniumWebDriver和python编写html代码?_Python_Csv_Selenium_Web Crawler - Fatal编程技术网

如何正确获取URL';使用SeleniumWebDriver和python编写html代码?

如何正确获取URL';使用SeleniumWebDriver和python编写html代码?,python,csv,selenium,web-crawler,Python,Csv,Selenium,Web Crawler,使用python 2.7和selenium webdriver,我试图:从CSV文件中打开url(CSV每行包含1个url),阅读url的DOM html代码,从这里提取关键字并打印结果: from selenium import webdriver import csv keyword = ['script'] driver = webdriver.Chrome(executable_path=r'C:\Users\Jacob\PycharmProjects\Testing\chromed

使用python 2.7和selenium webdriver,我试图:从CSV文件中打开url(CSV每行包含1个url),阅读url的DOM html代码,从这里提取关键字并打印结果:

from selenium import webdriver
import csv

keyword = ['script']

driver = webdriver.Chrome(executable_path=r'C:\Users\Jacob\PycharmProjects\Testing\chromedriver_win32\chromedriver.exe')
html = driver.page_source

with open('listofwebsites.csv', 'r') as f:
    csv_f = csv.reader(f, lineterminator='\n')
    for line in f:
        strdomain = line.strip()
        if '.nl' in strdomain:
            try:
                driver.get(strdomain)
                for searchstring in keyword:
                    if searchstring.lower() in html.lower():
                        print (strdomain, keyword, 'found')
                    else:
                        print (strdomain, keyword, 'not found!')

            except strdomain.HTTPError:
                print (strdomain, 'HTTP ERROR')

            except strdomain.URLError:
                print (strdomain, 'URL ERROR')

            except strdomain.socket.error:
                print (strdomain, 'SOCKET ERROR')

            except strdomain.ssl.CertificateError:
                print (strdomain, 'SSL Certificate ERROR')    
f.close()
打印结果的一个片段:

('http://www.google.nl', ['script'], 'not found!')
('http://www.marktplaats.nl', ['script'], 'not found!')
('http://www.ing.nl', ['script'], 'not found!')
显然,我的脚本在读取DOM方面没有很好地发挥作用,因为
script
确实存在于网站的DOM html代码中


我如何解决这个问题?

你从来没有使用过
csv\u f
@ryugie你是什么意思?@jakeT888你在第10行创建了一个csv阅读器
csv\u f
。然后,在线11忽略
csv\u f
reader对象,而是直接迭代文件对象`f。因此,您的csv阅读器从未用于任何用途。此外,如果您只是简单地提取html代码并检查它,您甚至需要selenium吗?Selenium用于与网站交互-填写表单、单击内容、与页面上的JS交互等。您在这里所做的似乎只是提取页面HTML和检查内容,因此更简单的方法是使用
请求
模块。您可以通过
请求
检索页面HTML,而无需启动整个web驱动程序/浏览器组合,这将是一种更快更干净的方法。@daveruinseverything感谢您的回复。您建议我如何准确地编辑代码?例如,我尝试了urllib2来获取页面html。然而,使用它,我得到了“查看页面源代码”,而不是javascript呈现的DOM html代码(我正在寻找),这就是我使用selenium的原因(我不知道为什么)。我可以通过
请求
获得DOM吗?