亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python_爬蟲_二

系統(tǒng) 1745 0

代理

ProxyHandler處理器(代理)

1、代理的原理:在請求目的網(wǎng)站之前,先請求代理服務(wù)器,然后讓代理服務(wù)器去請求目的網(wǎng)站,代理服務(wù)器拿到目的服務(wù)器的網(wǎng)站數(shù)據(jù)后,再轉(zhuǎn)發(fā)給我們的代碼。
2、http://httpbin.org/ip這個網(wǎng)站可以方便我們查看一些http請求參數(shù)
3、使用代理的方法:
ProxyHandle這個方法需要傳入一個字典,key:請求schema,value:代理服務(wù)器ip+端口

            
              from urllib import request
#
# url = 'http://httpbin.org/ip'
# rst = request.urlopen(url)
# print(rst.read())

# 使用代理服務(wù)器

    url = 'http://httpbin.org/ip'

# 1、使用ProxyHandler,傳入代理構(gòu)建一個handler
handler = request.ProxyHandler({'http': '113.58.232.168:22'})
# 2、使用上邊創(chuàng)建的handler構(gòu)建一個opener
opener = request.build_opener(handler)
# 3、使用opener去發(fā)送一個請求
resp = opener.open(url)
print(resp.read())

            
          

##Cookie

Cookie是指網(wǎng)站服務(wù)器為了辨別用戶身份和進(jìn)行session跟蹤,而儲存在瀏覽器上的文本文件,Cookie可以保持登陸信息到用戶下次與服務(wù)器的會話。
以人人網(wǎng)為例,人人網(wǎng)中,如果要訪問某個用戶的主頁,必須要登陸才能訪問,登陸即是要有cookie信息。我們采用兩種方法實現(xiàn),第一種是使用瀏覽器訪問,然后將cookie信息復(fù)制出來,放到header中:
# - - coding: UTF-8 - -

            
              from urllib import request

# 大鵬董成鵬的主頁:http://www.renren.com/880151247/profile
# 人人網(wǎng)登陸頁面:http://www.renren.com/SysHome.do

dapeng_url = 'http://www.renren.com/880151247/profile'
login_url = 'http://www.renren.com/SysHome.do'

headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit'
                  '/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36',
    'Cookie': 'anonymid=k02impal-tmpd25; depovince=GW; _r01_=1; JSESSIONID=abcYqcqOuNhffcBi8BYZw; ick_login=7c4d0511-c893-42c1-8fda-3564faa28a52; t=0eff0522ab61294e3bc281fe70aa325a0; societyguester=0eff0522ab61294e3bc281fe70aa325a0; id=972132120; xnsid=8dc4e96; jebecookies=9ab2903d-4f30-4a28-93f6-9ba3d660cdc7|||||; ver=7.0; loginfrom=null; jebe_key=19da0328-52ed-4a5e-9d8a-e1f55f4462e0%7C2dde9b9acea3b1be0942f6c86fb36dce%7C1567514411855%7C1%7C1567514413401; jebe_key=19da0328-52ed-4a5e-9d8a-e1f55f4462e0%7C2dde9b9acea3b1be0942f6c86fb36dce%7C1567514411855%7C1%7C1567514413403; wp_fold=0'
}

req = request.Request(url=dapeng_url, headers=headers)
resp = request.urlopen(req)
# print(resp.read().decode('utf-8'))
with open('renren.html', 'w', encoding='utf-8') as f:
    # python3 中,write函數(shù)必須寫入一個str的數(shù)據(jù)類型
    # resp.read()返回的是一個bytes數(shù)據(jù)類型
    # bytes -> decode -> str
    # str -> encode -> bytes
    f.write(resp.read().decode('utf-8'))

    # -*- coding: UTF-8 -*-
    
    from urllib import request
    from urllib import parse
    from http.cookiejar import CookieJar
    

# 大鵬董成鵬的主頁:http://www.renren.com/880151247/profile
# 人人網(wǎng)登陸頁面:http://www.renren.com/SysHome.do
login_url = 'http://www.renren.com/PLogin.do'
dapeng_url = 'http://www.renren.com/880151247/profile'


def get_openner():
    # 1、創(chuàng)建一個cookiejar對象
    cookiejar = CookieJar()
    # 2、使用cookiejar創(chuàng)建一個HTTPCookieProcessor對象
    handler = request.HTTPCookieProcessor(cookiejar)
    # 3、使用上一步創(chuàng)建的handler創(chuàng)建一個opener
    opener = request.build_opener(handler)
    return opener

def login_renren(opener):
    # 5、使用opener來發(fā)送登陸的請求
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit'
                      '/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36',
    }
    data = {
        'email': 'xxxxxxxxxxxxx',
        'password': 'xxxxxx'
    }
    req = request.Request(login_url, headers=headers, data=parse.urlencode(data).encode('utf-8'))
    opener.open(req)

def visit_profile(opener):
    # 獲取個人頁面時,不需新建一個opener
    # 而應(yīng)該使用之前的那個opener,因為之前的opener已經(jīng)包含了登陸所需的cookie信息
    req = request.Request(dapeng_url)
    resp = opener.open(req)
    with open('renren1.html', 'w', encoding='utf-8') as f:
        f.write(resp.read().decode('utf-8'))

if __name__ == '__main__':
    opener = get_openner()

    login_renren(opener)
    visit_profile(opener)

            
          

保存和讀取本地cookie

            
              # -*- coding: UTF-8 -*-

from urllib import request
from http.cookiejar import MozillaCookieJar

cookiejar = MozillaCookieJar('test_cookie.txt')
handler = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(handler)

resp = opener.open('http://httpbin.org/cookies/set?course=test')
cookiejar.save(ignore_discard=True)

# 加載cookie

cookiejar = MozillaCookieJar('test_cookie.txt')
cookiejar.load(ignore_discard=True)
handler = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(handler)
resp = opener.open('http://httpbin.org/cookies')
for cookie in cookiejar:
    print(cookie)

            
          

更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲一区国产 | 久久午夜青青草原影院 | 成人免费视频网站 | 秋霞在线观看成人高清视频51 | 久久九九综合 | 99热久久国产精品一区 | 久久精品加勒比中文字幕 | 成人性生免费视频 | 狠狠色丁婷婷综合久久 | 在线看的成人性视频 | 久久午夜宅男免费网站 | 香蕉精品视频在线观看入口 | 国产精品嫩草研究所永久网址 | 精品国产午夜久久久久九九 | 一级片按摩 | 免费视频爱爱太爽了 | 番茄视频在线观看黄版本免费 | 久久久久久久久久福利 | 久久综合97色综合网 | 久久99国产综合精品 | 香蕉亚洲精品一区二区 | 淫综合网| 四虎影音在线观看 | 视频大全在线观看免费 | 青青草免费在线视频 | 天天干夜夜操 | 欧美在线一级片 | 中文字幕亚洲综合久久菠萝蜜 | 99精品在线播放 | 黑人边吃奶边扎下面激情视频 | 热久久免费视频 | 99久久99这里只有免费费精品 | 亚洲免费精品视频 | 中文字幕日韩一区 | 欧美色老太婆 | 男女啪啪网站 | 大尺度视频网站久久久久久久久 | 九九九九热精品免费视频 | 亚洲国产99999在线精品一区 | 国内精品视频在线播放一区 | 欧美成人免费全部观看天天性色 |