中文网站加速名列JAVA,接纳SEO
流程表白:
流程接纳三个缓存来运转,缓存1在放心全权上以获取完全免费的ip门商标,缓存2继续施行名列表达式,那么做是包管材料库中的ip无法被耗用完。
1、固然完全免费的全权绝大大都是合宪的,缓存1在以获取到ip后还会甄选出或者说有效率需用的ip门商标,并将其取走材料库。
2、名列表达式次要就从材料库中乱数优先选择ip门商标,接着透过该ip步入到必要出访的中文网站,接纳random组件的促进感化是制止应用法式推论是电脑操做体例 因而接纳乱数点选与翻转,虽然那么做无法确认与否实在世界管用,透过统一中文网站反频频复接纳该流程,对名列说不定会有效率果。
难题:
可能将还存有利用者新体验等各方面的难题,也可能将包容应用法式演算法等有关难题,中文网站加速名列流程会急速强化……
标识符如下表所示:
import requests,time,random,pymysql,threadingfrom selenium import webdriverfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.chrome.options import Optionsdef ip():url =chrome_options = Options()# 增设chrome应用法式无介面贸易形式chrome_options.add_argument(--headless)driver = webdriver.Chrome(chrome_options=chrome_options)driver.get(url)ips = driver.find_elements_by_xpath(//ul[@class=\l2\]/span[1]/li) # 找出ip组件dks = driver.find_elements_by_xpath(//ul[@class=\l2\]/span[2]/li) # 路由器lxs = driver.find_elements_by_xpath(//ul[@class=\l2\]/span[4]/li) # 类别统计数据try:for i in range(len(ips)):proxies = {lxs[i].text:ips[i].text+:+dks[i].text}r = requests.get( proxies=proxies, timeout=5)#推论ip与否有效率if r.status_code == 200:#将有效率的ip载入ip_data材料库sql_insert = "INSERT IGNORE INTO ip_data(ip,port,types) VALUES (%s,%s,%s)"%(ips[i].text,dks[i].text,lxs[i].text)cursor.execute(sql_insert)conn.commit()conn.close()driver.close()except:passdriver.close()def xx():url = ?q= + keyword#查询材料库sql = "select * from ip_data"cursor.execute(sql)ips = []for i in cursor.fetchall():ips.append(i[0])ip_data = random.choice(ips)#乱数抽出两个ip#从材料库中删掉该统计数据delete = "DELETE FROM ip_data WHERE ip=%s"cursor.execute(delete,ip_data)conn.close()PROXY = ip_data # IP:PORT or HOST:PORTchrome_options = webdriver.ChromeOptions()chrome_options.add_argument(--proxy-server=%s % PROXY)driver = webdriver.Chrome(chrome_options=chrome_options)driver.get(url)driver.set_page_load_timeout(10)#乱数每边翻转表达式def rand():time.sleep(random.randint(2,5))#乱数逗留1-5秒for i in range(random.randint(2,6)):driver.execute_script("window.scrollTo(%s,%s)"%(random.randint(1,300),random.randint(1,300)))time.sleep(random.randint(1,3))driver.execute_script("window.scrollTo(%s,%s)"%(random.randint(1,300),random.randint(1,300)))#乱数点选表达式def click():for i in range(3):time.sleep(1)for i in range(1,3):driver.execute_script("window.scrollTo(%s,%s)" % (random.randint(1, 800), random.randint(1, 500)))time.sleep(random.randint(1, 3))driver.execute_script("window.scrollTo(%s,%s)" % (random.randint(1, 800), random.randint(1, 500)))for j in range(30):time.sleep(0.5)x = random.randint(1,960)y = random.randint(1,1040)action = ActionChains(driver)action.move_by_offset(x, y).click()action.perform()num = 0while True:try:num += 1if num == 10:print("已查找出第十页没有统计数据,流程完毕!")driver.close()breakprint("正在查找第",num,"页")divs = driver.find_elements_by_xpath(//h2/a)for i in divs:#若是指定元素在以获取的元素里则点选if link in i.get_attribute(href):i.click()click()rand()#若是不在则点选下一页driver.find_element_by_xpath(//div[@class="pager"]/a).click()except:driver.close()breakif __name__ == __main__:# 创建统计数据表conn = pymysql.connect(localhost, user=root, passwd=, db=ip)cursor = conn.cursor()# cursor.execute(DROP TABLE IF EXISTS ip_data)# sql = """CREATE TABLE ip_data(# ip VARCHAR(255) NOT NULL,# port VARCHAR(255) NOT NULL,# types VARCHAR(255) NOT NULL,# PRIMARY KEY(ip)#ip主键# )# """# cursor.execute(sql)keyword = input("请输入搜刮关键词:")link = input("请输入必要刷的域名:")thread = threading.Thread(target=ip)thread1 = threading.Thread(target=xx)thread.start()thread1.start()thread.join()thread1.join()
评论列表