Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
用Python编写的Selenium Bot的替代方案是什么?_Python_Selenium_Webdriver_Bots_Puppeteer - Fatal编程技术网

用Python编写的Selenium Bot的替代方案是什么?

用Python编写的Selenium Bot的替代方案是什么?,python,selenium,webdriver,bots,puppeteer,Python,Selenium,Webdriver,Bots,Puppeteer,我已经完成了一个基本的网页抓取机器人的构建,它可以在我想要的网站上执行任务。完成之后,我意识到selenium在解析web数据时非常慢,而且执行更大的任务可能需要几分钟或更长的时间。基本上,我的基本机器人在网站上搜索,然后解析不同的文章并记录结果。我的机器人是用Python 3编写的,它导入了selenium webdriver。任务的范围包括单击搜索栏,键入,输入,然后查找最热门的文章并记录它们。我想把这推进到参与文章和与文章作者交流,每个任务联系5-10人。我在theverge.com上做过

我已经完成了一个基本的网页抓取机器人的构建,它可以在我想要的网站上执行任务。完成之后,我意识到selenium在解析web数据时非常慢,而且执行更大的任务可能需要几分钟或更长的时间。基本上,我的基本机器人在网站上搜索,然后解析不同的文章并记录结果。我的机器人是用Python 3编写的,它导入了selenium webdriver。任务的范围包括单击搜索栏,键入,输入,然后查找最热门的文章并记录它们。我想把这推进到参与文章和与文章作者交流,每个任务联系5-10人。我在theverge.com上做过,但这只是一个测试网站,不是真正的交易

我听说过向URL发送GET请求并向URL添加搜索查询,然后解析响应。然而,我不知道如何做到这一点,任何参考这将是伟大的开始我在正确的方向。我还考虑将Node用于繁重的JavaScript站点,使用Puppeter加载和解析动态网页

任何提示或建议,将指向正确的方向,我很感激

除了我的代码作为参考

driver.get("https://www.theverge.com/")
print(driver.title)

search_button = driver.find_elements_by_id("icon-search")

search = driver.find_element_by_name("q")
search.send_keys("facebook")
search.send_keys(Keys.RETURN)

try:
    element = WebDriverWait(driver, 20).until(
        EC.presence_of_element_located((By.LINK_TEXT, "Facebook’s old web design will disappear in September")))
    element.click()

except:
    driver.quit()

使用urllib/urllib3(分别适用于Python 2或Python 3),请求BeautifulSoup4。 你做的工作太多,无法获得所需的搜索。这将足以获得第一个链接

import requests, urllib3
from bs4 import BeautifulSoup

link = "https://www.theverge.com/search?q=facebook"

session = requests.Session()
url = session.get(link).text

soup = BeautifulSoup(url,'lxml')
titles = soup.select('.c-entry-box--compact__title > a')

for title in titles:
    if title.has_attr('href'):
        print(title.attrs['href'])
        break

可用于Javascript网站。

搜索模块
请求
urllib
从服务器获取HTML并随后发送表单数据,以及模块
BeautifulSoup
lxml
解析HTML并在HTML中搜索数据。但这不会运行JavaScript,如果您有带有JavaScript的页面,那么您可能仍然需要
Selenium
,但您可以尝试在
headless
模式下运行而不在窗口中显示。