1. 程式人生 > >python3爬蟲,最短時間實現(四)

python3爬蟲,最短時間實現(四)

程式碼實現網站的模擬登陸:

# -*- coding: utf-8 -*-



import urllib.request
import urllib
import http.cookiejar
import re


def makeMyOpener(head = {
    'Connection':'Keep-Alive',
    'Accept':'text/html,application/xhtml,*/*',
    'Accept-language':'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
    'User-Agent':'Molizlla/5.0(Windows NT 6.3;WOW64;Trident/7.0;rv:11.0)like Gecko',
    }):
    cj = http.cookiejar.CookieJar()
    opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
    header = []
    for key,value in head.items():
        elem = (key,value)
        header.append(elem)


    opener.addheaders = header
    return opener


opener = makeMyOpener()
uop = opener.open('http://www.zhihu.com/')
temp_data = uop.read().decode()
#print(data)
r = re.compile(r'name="_xsrf" value="(.+?)"')
value = r.findall(temp_data)
_xsrf = value[0]


url = 'http://www.zhihu.com/#signin'
id = ''
password = ''
postdict = {
    '_xsrf':_xsrf,
    'email':id,
    'password':password,
    'rememberme':'y'
}
postData = urllib.parse.urlencode(postdict).encode()
op = opener.open(url,postData)
data = op.read()

print(data)

參考如下連結:http://jecvay.com/2014/10/python3-web-bug-series4.html(足夠詳細)






























相關推薦

python3爬蟲短時實現

程式碼實現網站的模擬登陸: # -*- coding: utf-8 -*- import urllib.request import urllib import http.cookiejar import re def makeMyOpener(head = {    

python入門習題——14長公共字首簡單

編寫一個函式來查詢字串陣列中的最長公共字首。 如果不存在公共字首,返回空字串 ""。 示例 1: 輸入: ["flower","flow","flight"] 輸出: "fl" 示例 2: 輸入: ["dog","racecar","car"] 輸

Java多執行緒-----執行緒池的使用原理以及舉例實現:使用樣例及如何配置執行緒池大小

三.使用示例   前面我們討論了關於執行緒池的實現原理,這一節我們來看一下它的具體使用: public class Test { public static void main(String[] args) { ThreadPoolExe

機器學習:決策樹過擬合與剪枝決策樹程式碼實現

文章目錄 楔子 變數 方法 資料預處理 剪枝 獲取待剪集: 針對ID3,C4.5的剪枝 損失函式的設計 基於該損失函式的演算法描述 基於該損失函式的程式碼實

機器學習:結點的實現決策樹程式碼實現

文章目錄 楔子 定義變數: 定義方法 獲得劃分的feature 生成結點 停止條件及其處理 fit() 生成樹剪枝 楔子 前面已經實現了各種資訊量的計算,那麼我們劃分的基本有了,那

機器學習:資訊熵基尼係數條件熵條件基尼係數資訊增益資訊增益比基尼增益決策樹程式碼實現

文章目錄 初始化,涉及到使用的變數: 資訊熵 定義公式,經驗公式 程式碼: 基尼係數 定義公式,經驗公式 程式碼: 條件熵,條件基尼係數 條件熵定義公式,經驗公式

Python3爬蟲從入門到自殘:HTML及其解析

一.HTML標記語言基礎 要從網頁中抽取資料出來,那麼瞭解HTML標記語言是很重要的,但是這個系列的部落格並不是要專門講HTML的,所以,不會講過多的HTML的細節.對於很熟悉HTML的人就不說啦,對於不熟悉HTML語言的同學,這裡推薦一個教程,精簡,方便查閱.

Booking網站爬蟲獲取酒店評論內容Python

1、爬蟲目標 booking旅遊網站香港地區酒店的評論內容 2、爬蟲步驟 (1)gethotelurl.py (2)booking.py (注:該程式碼爬的是英文評論,如若想要中文評論內容,按照註釋中的修改90、91行即可) 從hot

python——爬蟲&問題解決&思考

參數 多層 得到 簡單 odi 用兩個 src http 輸出   繼續上一篇文章的內容,上一篇文章中已經將url管理器和下載器寫好了。接下來就是url解析器,總的來說這個模塊是幾個模塊中比較難的。因為通過下載器下載完頁面之後,我們雖然得到了頁面,但是這並不是我們想要的結果

模型類的設計與實現

介紹 傳遞數據 規則 添加 play using ota 實體類 重要 實體類是現實實體在計算機中的表示。它貫穿於整個架構,負擔著在各層次及模塊間傳遞數據的職責。 一般來說,實體類可以分為“貧血實體類”和“充血實體類”,前者僅僅保存實體的屬性,而後者還包含一些實體間的關系與

Andrew Ng機器學習筆記+Weka相關算法實現SVM和原始對偶問題

優化問題 坐標 出了 變量 addclass fun ber 找到 線性 這篇博客主要解說了Ng的課第六、七個視頻,涉及到的內容包含,函數間隔和幾何間隔、最優間隔分類器 ( Optimal Margin Classifier)、原始/對偶問題 ( Pr

數據結構實現二叉查找樹java實現

.com ML treenode 設置 AC getparent 邏輯圖 技術分享 ldb 轉載 http://www.cnblogs.com/CherishFX/p/4625382.html 二叉查找樹的定義:   二叉查找樹或者是一顆空樹,或者是一顆具有以下特性的非空二

認證鑑權與API許可權控制在微服務架構中的設計與實現

引言: 本文系《認證鑑權與API許可權控制在微服務架構中的設計與實現》系列的完結篇,前面三篇已經將認證鑑權與API許可權控制的流程和主要細節講解完。本文比較長,對這個系列進行收尾,主要內容包括對授權和鑑權流程之外的endpoint以及Spring Security過濾器部分踩坑的經歷。歡迎閱讀本系列

[乾貨來襲]DevExpress ASP.NET示例資源全分享!

為解決大家找資源難的問題,EVGET聯合DevExpress控制元件中文網盤點熱門的DevExpress資訊、Demo示例、版本升級及下載,以及各種教程推薦等。更多下載及資訊也可以在DevExpress控制元件中文網中找到,及時瞭解最新動態! 示例Demo(仍在持續更新……) DevE

資料結構實現:迴圈佇列C++版

資料結構實現(四):迴圈佇列(C++版) 1. 概念及基本框架 2. 基本操作程式實現 2.1 入隊操作 2.2 出隊操作 2.3 查詢操作 2.4 其他操作 3. 演算法複雜度分析 3.1 入

Android IPC程序通訊AIDL

AIDL-Android介面定義語言 一· 1.相比於Messenger AIDL可跨程序呼叫方法。 2.支援資料型別: (1) Java 的原生基本型別(int, long, char, boolean, double等) (2)String 和CharSequence (3) Arr

cordova入門級簡單功能的實現

cordova入門級簡單功能的實現(四) 1:安裝sdk ** 首先什麼是SDK** SDK:軟體開發工具包(縮寫:SDK、外語全稱:Software Development Kit)一般都是一些軟體工程師為特定的軟體包、軟體框架、硬體平臺、作業系統等建立應用軟體時的開發工具的集

五子棋專案的實現具體的總結

在整個五子棋專案的過程中,有很多問題 的體現。其中規範化就是最主要的體現。 由於是陸陸續續寫的,時間一久我居然連自己的程式碼都要隔十幾分鍾才能緩過來這大概在寫些什麼東西。所以註釋跟命名的規範真的很重要,像方法的命名,其中第一個小寫,這樣別人也能一眼就看懂你寫的是個方法,然後就是動手之前的具體設計。因為沒有考

基於java的微信小程式的實現使用者個人資訊相關介面開發

1.查詢使用者個人資訊介面開發 1.需求分析 需要通過前端傳來的使用者的userid去資料庫中進行查詢,並將查詢到的物件封裝為usersVo返回給前端 dao層程式碼 public interface UsersDao extends JpaRepository<Use

Mybatis攔截器實現通用mapper及全ORM實現

到目前為止,我們通過mybatis的攔截器完成了一些基礎mapper的功能,接下來我們來看看如何能夠實現一個物件關係對映的全ORM操作。 實體與表、列的定義已經完成了,那剩下要做的就是: 1、定義如何通過物件方式編寫sql語句 2、把查詢物件轉譯成sql去查詢 3、把查詢結