時間:2023-05-20 16:18:02 | 來源:網(wǎng)站運營
時間:2023-05-20 16:18:02 來源:網(wǎng)站運營
Python定向爬蟲模擬新浪微博登錄:當(dāng)我們試圖從新浪微博抓取數(shù)據(jù)時,我們會發(fā)現(xiàn)網(wǎng)頁上提示未登錄,無法查看其他用戶的信息。Cookie(復(fù)數(shù)形態(tài)Cookies),中文名稱為“小型文本文件”或“小甜餅”,指某些網(wǎng)站為了辨別用戶身份而儲存在用戶本地終端(Client Side)上的數(shù)據(jù)(通常經(jīng)過加密)。通俗來說就是服務(wù)器端為了確認用戶終端的身份而設(shè)定的一種加密標(biāo)識,它是存儲在本地終端上的。
#!/usr/bin/env python#coding=utf8import urllib2import re'''遇到不懂的問題?Python學(xué)習(xí)交流群:1004391443滿足你的需求,資料都已經(jīng)上傳群文件,可以自行下載!'''# get your cookie from Fiddler11cookie = 'your-cookie'headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0', 'cookie': cookie}def visit(): url = 'http://weibo.com' req = urllib2.Request(url, headers=headers) text = urllib2.urlopen(req).read()# print the title, check if you login to weibo sucessfully pat_title = re.compile('<title>(.+?)</title>') r = pat_title.search(text) if r: print(r.group(1))if __name__ == '__main__': visit()
import HTMLParser import urlparse import urllib import urllib2 import cookielib import string import re #登錄的主頁面 hosturl = '******' //自己填寫 #post數(shù)據(jù)接收和處理的頁面(我們要向這個頁面發(fā)送我們構(gòu)造的Post數(shù)據(jù)) posturl = '******' //從數(shù)據(jù)包中分析出,處理post請求的url #設(shè)置一個cookie處理器,它負責(zé)從服務(wù)器下載cookie到本地,并且在發(fā)送請求時帶上本地的cookie cj = cookielib.LWPCookieJar() cookie_support = urllib2.HTTPCookieProcessor(cj) opener = urllib2.build_opener(cookie_support, urllib2.HTTPHandler) urllib2.install_opener(opener) #打開登錄主頁面(他的目的是從頁面下載cookie,這樣我們在再送post數(shù)據(jù)時就有cookie了,否則發(fā)送不成功) h = urllib2.urlopen(hosturl) #構(gòu)造header,一般header至少要包含一下兩項。這兩項是從抓到的包里分析得出的。 headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1', 'Referer' : '******'} #構(gòu)造Post數(shù)據(jù),他也是從抓大的包里分析得出的。 postData = {'op' : 'dmlogin', 'f' : 'st', 'user' : '******', //你的用戶名 'pass' : '******', //你的密碼 'rmbr' : 'true', //特有數(shù)據(jù),不同網(wǎng)站可能不同 'tmp' : '0.7306424454308195' //特有數(shù)據(jù),不同網(wǎng)站可能不同 } #需要給Post數(shù)據(jù)編碼 postData = urllib.urlencode(postData) #通過urllib2提供的request方法來向指定Url發(fā)送我們構(gòu)造的數(shù)據(jù),并完成登錄過程 request = urllib2.Request(posturl, postData, headers) print request response = urllib2.urlopen(request) text = response.read() print text
作者:北島知寒關(guān)鍵詞:爬蟲,模擬
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。