備註:python:2.7.12 ubantu:16.04(32位)瀏覽器:firefox
(其實是因為想練習一下request登入之後儲存cookies~~)
博主是湖南農業大學的大三學生,因為本校acm較弱(苦笑臉),oj也沒啥人維護,竊以為很容易爬,就拿來練手啦hhhhhhh
找到登入頁面按好f12~~~
然後我們隨便輸入乙個賬號和密碼,這樣網頁會給我們彈出乙個密碼錯誤的提示,不會跳轉,就可以抓到乙個post請求
點進去就可以在右邊看到headers和要傳的引數,這樣就可以對症下藥啦
在訊息頭的右邊的右邊有個引數 -.-
這樣我們需要post的資料就已經出來了
datas=
id和password都好理解,但是這個csrf是個什麼東西呢??
其實這個csrf在原來的登入頁面的html裡面有,不信可以找找看?
但是= = 尷尬的是 我本來以為直接urlopen獲取的html裡面就有!但是。。。我用正則匹配了半天竟然沒找到! 生氣
你們可以先試試。。。。
後來看了一下network才發現,點進這個頁面的時候竟然有個get請求,天啦嚕
而且這名字。。。真的通俗易懂,點瀏覽器進去檢視了一下html**發現真的是那個csrf的vaule,就很氣。。。。。
好啦,到這裡所有引數都獲取到了 接下來就是敲**登入以及爬取題目資料了,登入好了就可以用beautifulsoup處理了,都很簡單了啦~就不多寫了~
最重要的!貼**!
#author:huxinjianzs
import requests
import urllib2
import re
from bs4 import beautifulsoup
loginurl='' #實際提交表單頁面
headers=
def getcsrf():
firsturl='' #獲取csrf請求頁面
req=urllib2.request(firsturl)
page=urllib2.urlopen(req)
html=page.read()
t=re.compile(r'name="csrf" value="(.+)" ') #使用正規表示式進行匹配
list=t.findall(html)
return list[0]
def login(datas):
geturl='' #需要爬取的登入之後的頁面
s=requests.session() #構建session物件
post=s.post(loginurl,data=datas,headers=headers) #post資料
get=s.get(geturl,cookies=post.cookies,headers=headers)
return get.content #返回html
def download(html):
soup=beautifulsoup(html)
list=soup.findall('tr',class_=)
name=re.compile(r'">(.+)')
href=re.compile(r'href="(.+)">')
url=''
for i in list:
print i.text+' '+url+i.find('a').attrs['href']
csrf=getcsrf()
paprm=
html=login(paprm)
download(html)
練 python爬取小說
coding utf 8 爬取 by asdfv 將每部 的章節內容儲存至本地 import urllib2,re from bs4 import beautifulsoup import threading 請求並獲取網頁原始碼 defget html content url header req...
Scrapy入門 爬取需要登入後才能訪問的資料
前面幾篇文章抓取的均是公開的資料,即沒有控制訪問許可權即可瀏覽的資料。但還是存在一些 比如教學管理系統 內部論壇等 它會首先要求你登入,然後才能訪問到後續的內容。這種情況下,就要首先解決登入授信的問題。在開始編碼實現前,我們先了解下登入授信的原理。cookie 那客戶端是如何拿到cookie的呢,下...
Python爬蟲例項(二)爬取資料後併入excel
報錯 module not found error no module named openpyxl 原始碼 import requests from lxml import etree import pandas as pd 設定請求頭 headers cookies 儲存列表 film 封裝ur...