日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747


python:教你用爬蟲通過代理自動(dòng)刷網(wǎng)頁的瀏覽量

 

 

前言

每當(dāng)看到幾十萬的閱讀量的文章后面區(qū)區(qū)幾個(gè)評(píng)論, 心中就在想, 難道大家現(xiàn)在都這么懶了嗎? 但是有些文章閱讀量不高, 評(píng)論為什么這么多呢?

我想這些應(yīng)該都是刷的, 不光瀏覽量是刷的, 甚至那些無厘頭的評(píng)論都是刷的。有人要問了, 你憑什么說別人刷的評(píng)論呢? 難道評(píng)論還可以刷? 我想說是的。

比如:我們?cè)跒g覽微博的時(shí)候,會(huì)經(jīng)常發(fā)現(xiàn)一件事, 怎么每個(gè)微博下面都有這個(gè)人的小廣告呢? 難道這人都這么閑嗎? 一個(gè)人閑也就罷了, 怎么這么多人都閑?可以在大量的微博下面評(píng)論大量的小廣告, 并且點(diǎn)贊還非常多。具體是不是刷的,自己做判斷就好了。

今天教大家的是, 用爬蟲通過代理來增加網(wǎng)頁的瀏覽量。以下是干貨↓

思路

一、怎么獲取大量的代理IP?

給大家推薦一個(gè)網(wǎng)站https://www.xicidaili.com/ , 看到下面的圖片, 應(yīng)該明白我們要做什么了吧。我們可以寫一個(gè)爬蟲去抓取這些IP。

 

python:教你用爬蟲通過代理自動(dòng)刷網(wǎng)頁的瀏覽量

 

 

但是, 在實(shí)際運(yùn)行的時(shí)候, 發(fā)現(xiàn)了一個(gè)問題, 我怎么才能知道這些IP有用, 并且代理設(shè)置成功了呢? 當(dāng)然, 也是有解決方案的,我們可以用代理訪問這個(gè)網(wǎng)站http://httpbin.org/ip ,如果不正常會(huì)拋出異常, 如果是正常的就會(huì)返回如下信息

  •  
{
 "origin": "106.38.91.34, 106.38.91.34"
}

廢話不多說,直接上代碼:

  •  
from bs4 import BeautifulSoup
import requests
import random
import time
def download_page(url):
 print(url)
 try:
 #User Agent中文名為用戶代理,簡(jiǎn)稱 UA,它是一個(gè)特殊字符串頭,使得服務(wù)器能夠識(shí)別客戶使用的操作系統(tǒng)及版本、CPU 類型、瀏覽器及版本、
 #瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。
 header = {
 "User-Agent":"Mozilla/5.0 (windows NT 10.0; WOW64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/59.0.3071.104 Safari/537.36"
 }
 data = requests.get(url,headers=header).text
 except HTTPError as err:
 print(err.__traceback__)
 except ConnectionError as err:
 print(err.__traceback__)
 except TimeoutError as err:
 print(err.__traceback__)
 return data
#獲取當(dāng)前首頁的內(nèi)容
def parse_proxy_html(html):
 try:
 #解析器html.parser lxml xml html5lib
 soup = BeautifulSoup(html, 'lxml')
 find_all = soup.find_all('tr')
 f = open("proxy", "w")
 for find_tr in find_all:
 find_tds = find_tr.find_all('td')
 if len(find_tds) == 0:
 continue
 ip_temp = find_tds[1].contents[0]+":"+find_tds[2].contents[0]
 try:
 #隨機(jī)模擬一個(gè)用戶
 user_agent = {'User-Agent':random.choice(agent_list)}
 #隨機(jī)獲取一個(gè)代理ip
 proxies = {'http':ip_temp}
 #這樣寫沒有問題,但是抓取出來的ip大都沒有用
 #判斷代理ip是否有用,只保存有用的代理ip,兩秒不響應(yīng)就算無效的ip
 targetUrl = 'http://httpbin.org/ip'
 resp = requests.get(targetUrl, headers=user_agent,proxies=proxies,timeout=2)
 print(resp.status_code)
 print(resp.text)
 print('~~有效的~~代理ip和端口號(hào)%s'%ip_temp)
 f.write(ip_temp+"n")
 except Exception as e:
 print('~~異常:%s'%e) 
 print('~~無效的~~代理ip和端口號(hào)%s'%ip_temp)
 #獲取下個(gè)頁面地址
 next_a = soup.find('a',attrs={'rel': 'next'})
 if next_a is None:
 print("~~None~~~")
 return "";
 return next_a['href']
 except Exception as ex:
 print('抓取信息異常:'+ex)
#首頁數(shù)據(jù)抓取
HTTP = 'https://www.xicidaili.com'
def to_proxy_page():
 download_url = '/wt/1'
 num = 1
 while download_url != 'JAVAscript:;' and download_url!='':
 if num == 3:
 print('~~~~夠用了~~不抓取了~~~')
 break
 print("第%d次請(qǐng)求地址:%s"%(num,download_url));
 #隨機(jī)停頓幾秒
 i = random.randint(1, 3)
 time.sleep(i)
 #獲取頁面信息
 html = download_page(HTTP + download_url)
 #解析和保存
 download_url = parse_proxy_html(html)
 num = num+1;
 
if __name__ == '__main__':
 to_proxy_page()

獲取到的代理地址格式如下(想要多少, 代碼自己設(shè)置下就好了):

163.204.243.4:9999

60.13.42.248:9999

二、通過代理地址去刷新網(wǎng)頁

可以先寫一個(gè)User-Agent列表, 模擬不同的瀏覽器信息。然后配置需要刷新的網(wǎng)頁就好了。

  •  
import random
import socket
import requests
#定義需要刷新的頁面集合
refreshPage_list = [
 #1062
 'https://blog.csdn.net/dujianxiong/article/details/80844652',
 #153
 'https://blog.csdn.net/super_DuoLa/article/details/90205512'
 ]
#定義User-Agent集合
agent_list = [
 #Win7:
 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
 #Win7:
 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0',
 #Win7:
 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
 #Win7:
 'Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50',
 #Win7+ie9:
 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)',
 #Win7+ie8:
 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)',
 #WinXP+ie8:
 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)',
 #WinXP+ie7:
 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
 #WinXP+ie6:
 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)',
 #傲游3.1.7在Win7+ie9,高速模式:
 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12',
 #傲游3.1.7在Win7+ie9,IE內(nèi)核兼容模式:
 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)',
 #搜狗3.0在Win7+ie9,IE內(nèi)核兼容模式:
 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)',
 #搜狗3.0在Win7+ie9,高速模式:
 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0',
 #360瀏覽器3.0在Win7+ie9:
 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)',
 #QQ瀏覽器6.9(11079)在Win7+ie9,極速模式:
 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201',
 #QQ瀏覽器6.9(11079)在Win7+ie9,IE內(nèi)核兼容模式:
 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201',
 #阿云瀏覽器1.3.0.1724 Beta(編譯日期2011-12-05)在Win7+ie9:
 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'
 ] 
#開始搞
def to_refresh_page():
 try:
 #獲取代理信息
 f = open("proxy",'r')
 lines = f.readlines()
 proxys = []
 for line in lines:
 ip = line.strip()
 proxys.append(ip)
 #每個(gè)頁面刷新10次
 for i in range(10):
 for url in refreshPage_list:
 #隨機(jī)模擬一個(gè)用戶
 user_agent = {'User-Agent':random.choice(agent_list)}
 #隨機(jī)獲取一個(gè)代理ip
 proxies = {'http':random.choice(proxys)}
 r = requests.get(url,headers=user_agent,proxies=proxies)
 print(r)
 print('刷新成功,請(qǐng)求地址url:%s返回狀態(tài)status:%s'%(url,r.status_code))
 except Exception as e:
 print('刷新頁面異常:%s'%e)
 
if __name__ == '__main__':
 to_refresh_page()

代碼中我加了很多注解,就不長篇大論了,如果有不明白的可以評(píng)論。

三、思考問題

在實(shí)際測(cè)試中,發(fā)現(xiàn)剛才還有效的代理IP,當(dāng)去刷新網(wǎng)頁的時(shí)候就鏈接超時(shí)了呢?為什么請(qǐng)求了很多次,網(wǎng)頁的瀏覽量并沒有漲太多呢?

注: 文章所寫代碼僅用于技術(shù)交流

分享到:
標(biāo)簽:爬蟲 python
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定