公司有三百的不同的网站,前端代码的逻辑也不同。我需要写一个公共的python+selenium的脚本,可以对分别每个网站进行深度爬虫,获取所有的访问后端的request请求。请问这个问题可以实现吗?
我看网上的代码都是针对具体一个网站的爬虫,请问可以写一个通用的可以针对所有网站的爬虫吗?本人也是刚刚接触爬虫,谢谢大家了。
最多实现进入网站首页,其他的就不行了,因为每个网址都不同,页面元素也不同,所以做不到你说的通用
如果只是想获取页面内的所有请求,你可以试着抓下页面内所有url的值。
三百个不同的网站,只是相当于三百个不同的url,三百个不同的页面。爬虫能不能通用,取决于能不能将每个页面的解析提出共通。如果不能将所有页面共通处理,也可以试着分类进行处理。
最终能不能行,其实取决于你根据自己的实际需求,对现有网站分析归纳的结果。
all_list=[] #存储即将要点击点的坐标
global x
if '|' in result:
list_1=result.split('|')
count_1=len(list_1)
for i in range(count_1):
xy_list=[]
x=int(list_1[i].split(',')[0])
y = int(list_1[i].split(',')[1])
xy_list.append(x)
xy_list.append(y)
all_list.append(xy_list)
else:
x = int(list_1[i].split(',')[0])
y = int(list_1[i].split(',')[1])
xy_list = []
xy_list.append(x)
xy_list.append(y)
all_list.append(xy_list)
#遍历列表,使用动作链对每一个列表元素对应的x,y指定的位置点击操作
print(all_list)
对于编写通用的Python+Selenium脚本用于爬取多个不同网站的后端请求,可以参考以下步骤:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def crawl_website(url):
# 初始化浏览器驱动
chromeOptions = webdriver.ChromeOptions()
# 设置代理等其他参数
driver = webdriver.Chrome(options=chromeOptions)
# 访问网站
driver.get(url)
# 处理网站特定的认证证书弹窗
handle_certificate_warning(driver)
# 在这里添加其他需要的爬取逻辑,例如查找元素,点击按钮等
# 关闭浏览器驱动
driver.quit()
def handle_certificate_warning(driver):
# 定位认证证书弹窗的元素
loc = (By.XPATH, '//button[@id="details-button"]')
loc2 = (By.XPATH, '//a[@id="proceed-link"]')
# 使用显示等待,等待认证证书弹窗出现
WebDriverWait(driver, 4).until(EC.visibility_of_element_located(loc))
# 点击确认按钮
driver.find_element(*loc).click()
time.sleep(1)
# 等待继续前往链接出现
WebDriverWait(driver, 4).until(EC.visibility_of_element_located(loc2))
# 点击继续前往链接
driver.find_element(*loc2).click()
# 可以根据需要添加其他处理逻辑
crawl_website
函数,传入需要爬取的网站URL:if __name__ == '__main__':
websites = ['https://example1.com', 'https://example2.com', 'https://example3.com']
for website in websites:
crawl_website(website)
通过以上步骤,你可以编写一个通用的Python+Selenium脚本,用于爬取多个不同网站的后端请求。根据不同网站的特殊情况,你可以在crawl_website
函数中添加对应的爬取逻辑和处理方式,以适配不同的网站。同时,通过handle_certificate_warning
函数,可以处理网站的认证证书弹窗。请注意,具体的爬取逻辑和处理方式需要根据实际情况进行调整和完善。