def pageReader(link, stoptimes = 3):#页面停留 global driver#全局变量 driver.get(link) time.sleep(stoptimes*read_config.value("page_stop_time"))#页面停留时间默认3秒钟,因为百度会根据时间判断页面的重要性 num = 150 #瞎JB写的 :) for x in range(1,int(random.uniform(read_config.value("page_min_time"),read_config.value("page_max_time")))): #循环 设置循环表示要跳转几次. 上线 的话 可以多添加 几次 time.sleep(3) #每次循环之后添加停留时间增加容错率 num = abs(num + int(random.sample([150,-150],1)[0])) driver.execute_script("window.scrollBy(0,%s)" % num,"") #最后了 开始 跳转 就酱 driver.close()
def get(): #get proxy data = '' #这是放获取的内容的变量 print("wocao") with urllib.request.urlopen(read_config.value('get_ip_link')) as f: data = f.read().decode() while try_proxy(data): get() return data
def pageReader(times = 10, stoptimes = 3):#页面停留 global driver#全局变量 time.sleep(stoptimes*read_config.value("page_stop_time"))#页面停留时间默认3分钟,因为百度会根据时间判断页面的重要性 num = 180 #固定值是180根据百度搜多搜索页面高度1879 for x in range(1,int(random.uniform(4,times))): #循环 设置循环表示要跳转几次. 上线 的话 可以多添加 几次 time.sleep(3) #每次循环之后添加停留时间增加容错率 num = abs(num + int(random.sample([180,-180],1)[0])) driver.execute_script("window.scrollBy(0,%s)" % num,"") #最后了 开始 跳转 就酱
def get(): #get proxy data = '' #这是放获取的内容的变量 with urllib.request.urlopen(read_config.value('get_ip_link')) as f: data = f.read().decode() if try_proxy(data): return data else: time.sleep(3) get()
def setHttpsProxy(ip,port,useragent = ""):#参数 ip地址 端口 这是useragent global driver , profile#全局变量 profile = webdriver.FirefoxProfile(read_config.value("firfox_default_file"))#使用本地的firfox的配置文件 profile.set_preference('network.proxy.type', 1)#设置浏览器上完方式为手动 profile.set_preference('network.proxy.ssl', ip)#这里设置代理ip profile.set_preference('network.proxy.ssl_port', int(port))#这是设置代理的端口 profile.set_preference('general.useragent.override', useragent)#这是里设置useragent profile.update_preferences() driver = webdriver.Firefox(profile)#设置浏览器 driver.set_window_size(400,700)#设置浏览器 打开 类似 手机大小
def pageReader(link, stoptimes=3): #页面停留 global driver #全局变量 driver.get(link) time.sleep( stoptimes * read_config.value("page_stop_time")) #页面停留时间默认3秒钟,因为百度会根据时间判断页面的重要性 num = 150 #瞎JB写的 :) for x in range( 1, int( random.uniform( read_config.value("page_min_time"), read_config.value( "page_max_time")))): #循环 设置循环表示要跳转几次. 上线 的话 可以多添加 几次 time.sleep(3) #每次循环之后添加停留时间增加容错率 num = abs(num + int(random.sample([150, -150], 1)[0])) driver.execute_script("window.scrollBy(0,%s)" % num, "") #最后了 开始 跳转 就酱 driver.close()
def pageReader(times=10, stoptimes=3): #页面停留 global driver #全局变量 time.sleep( stoptimes * read_config.value("page_stop_time")) #页面停留时间默认3分钟,因为百度会根据时间判断页面的重要性 num = 180 #固定值是180根据百度搜多搜索页面高度1879 for x in range(1, int(random.uniform( 4, times))): #循环 设置循环表示要跳转几次. 上线 的话 可以多添加 几次 time.sleep(3) #每次循环之后添加停留时间增加容错率 num = abs(num + int(random.sample([180, -180], 1)[0])) driver.execute_script("window.scrollBy(0,%s)" % num, "") #最后了 开始 跳转 就酱
def setHttpsProxy(ip,port,useragent = ""):#参数 ip地址 端口 这是useragent global driver , profile#全局变量 profile = webdriver.FirefoxProfile(read_config.value("firfox_default_file"))#使用本地的firfox的配置文件 #profile.set_preference('network.proxy.type', 1)#设置浏览器上完方式为手动 if ip !='': profile.set_preference('network.proxy.ssl', ip)#这里设置代理ip profile.set_preference('network.proxy.ssl_port', port)#这是设置代理的端口 if useragent != "" :#判断usergaent是否为空 profile.set_preference('general.useragent.override', useragent)#这是里设置useragent profile.update_preferences() driver = webdriver.Firefox(profile)#设置浏览器 driver.maximize_window()#浏览器最大化(这个可选)
def setHttpsProxy(ip, port, useragent=""): #参数 ip地址 端口 这是useragent global driver, profile #全局变量 profile = webdriver.FirefoxProfile( read_config.value("firfox_default_file")) #使用本地的firfox的配置文件 profile.set_preference('network.proxy.type', 1) #设置浏览器上完方式为手动 profile.set_preference('network.proxy.ssl', ip) #这里设置代理ip profile.set_preference('network.proxy.ssl_port', int(port)) #这是设置代理的端口 profile.set_preference('general.useragent.override', useragent) #这是里设置useragent profile.update_preferences() driver = webdriver.Firefox(profile) #设置浏览器 driver.set_window_size(400, 700) #设置浏览器 打开 类似 手机大小
def type2(link): #规则2 点击特定的页面 其他的不点 time.sleep(5) #时间停留5秒 增加系统容错率 for x in range(read_config.value("baidupagenumber2")): #这是翻页页数在配置文件设置 try: driver.find_element_by_partial_link_text(link).click() time.sleep(5) driver.switch_to_window(driver.window_handles[-1]) pageReader() driver.close() driver.switch_to_window(driver.window_handles[0]) time.sleep(5) except: pass baiduNextPage()
def setHttpsProxy(ip, port, useragent=""): #参数 ip地址 端口 这是useragent global driver, profile #全局变量 profile = webdriver.FirefoxProfile( read_config.value("firfox_default_file")) #使用本地的firfox的配置文件 #profile.set_preference('network.proxy.type', 1)#设置浏览器上完方式为手动 if ip != '': profile.set_preference('network.proxy.ssl', ip) #这里设置代理ip profile.set_preference('network.proxy.ssl_port', port) #这是设置代理的端口 if useragent != "": #判断usergaent是否为空 profile.set_preference('general.useragent.override', useragent) #这是里设置useragent profile.update_preferences() driver = webdriver.Firefox(profile) #设置浏览器 driver.maximize_window() #浏览器最大化(这个可选)
def type2(link):#规则2 点击特定的页面 其他的不点 time.sleep(5) #时间停留5秒 增加系统容错率 for x in range(read_config.value("baidupagenumber2")):#这是翻页页数在配置文件设置 try: driver.find_element_by_partial_link_text(link).click() time.sleep(5) driver.switch_to_window(driver.window_handles[-1]) pageReader() driver.close() driver.switch_to_window(driver.window_handles[0]) time.sleep(5) except: pass baiduNextPage()
def type1(): #规则1 除了过滤器其他的随机点 time.sleep(5) #时间停留5秒 增加系统容错率 for x in range(read_config.value("baidupagenumber1")): time.sleep(3) noClick() #过滤掉不要的链接 content_list_num = driver.find_elements_by_tag_name("h3") for x in content_list_num: try: if suiji(): x.find_element_by_tag_name("a").click() time.sleep(5) driver.switch_to_window(driver.window_handles[-1]) pageReader() driver.close() driver.switch_to_window(driver.window_handles[0]) time.sleep(5) except: pass baiduNextPage()
def type1():#规则1 除了过滤器其他的随机点 time.sleep(5) #时间停留5秒 增加系统容错率 for x in range(read_config.value("baidupagenumber1")): time.sleep(3) noClick()#过滤掉不要的链接 content_list_num = driver.find_elements_by_tag_name("h3") for x in content_list_num: try: if suiji(): x.find_element_by_tag_name("a").click() time.sleep(5) driver.switch_to_window(driver.window_handles[-1]) pageReader() driver.close() driver.switch_to_window(driver.window_handles[0]) time.sleep(5) except: pass baiduNextPage()