四霎终、原生數(shù)據(jù)存儲(chǔ) &ip代理&模擬登陸

一、數(shù)據(jù)存儲(chǔ)

#1)存入json
import json
def write_to_json(data):
    # 把數(shù)據(jù)整合json支持的類(lèi)型
    json_list = []
    for houses in data:
        for house in houses:
            json_list.append(house)

    with open('lianjian.json','w') as fp:
        fp.write(json.dumps(json_list诫欠,index=2,ensure_ascii=False))
        # .dumps()方法:將json對(duì)象轉(zhuǎn)化為字符串
        # 參數(shù)indent:表示縮進(jìn)個(gè)數(shù)
        # 參數(shù)ensure_ascii:是否將中文字符轉(zhuǎn)化為Unicode字符

import csv
#2) 存入csv
def write_to_csv(data):
    # 在寫(xiě)csv的時(shí)候涵卵,需要把data整合成一個(gè)二維列表
    # 定義一個(gè)大的列表,用于保存所有的房屋信息
    csv_items = []
    for houses in data:
        for house in houses:
            # house是字典荒叼,按照鍵值的形式存儲(chǔ)了每個(gè)房屋的信息轿偎,取出值寫(xiě)入列表
            item = []
            for k,v in house.items():
                item.append(v)
            csv_items.append(item)

    # 寫(xiě)入csv
    with open('lianjjia.csv','w') as fp:
        # 用fp來(lái)創(chuàng)建一個(gè)csv的寫(xiě)對(duì)象
        w = csv.writer(fp)
        w.writerow(['title','house','position','totalPrice','unitPrice','img'])
        w.writerows(csv_items)
        # .writerows()方法:同時(shí)寫(xiě)入多行,參數(shù)是個(gè)二維列表· 4
        
import pymysql
#3) 存入數(shù)據(jù)庫(kù)
def write_to_mysql(data):
    # 創(chuàng)建一個(gè)mysql數(shù)據(jù)庫(kù)的鏈接
    db = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='123456',db = 'lianjia',charset='utf8')
    # 創(chuàng)建一個(gè)游標(biāo)被廓,用于解析sql語(yǔ)句
    cursor = db.cursor()

    # 創(chuàng)建sql語(yǔ)句
    for houses in data:
        for house in houses:
            sql = 'INSERT INTO ershoufang VALUES (NULL,"%s","%s","%s","%s","%s","%s",)'%(house['title'],house['house'],house['position'],house['totalPrice'],house['nuitPrince'],house['img'])

            # 解析并提交sql語(yǔ)句
            cursor.execute(sql)
            db.commit()

    # 關(guān)閉游標(biāo)和數(shù)據(jù)庫(kù)連接
    cursor.close()
    db.close()

二坏晦、ip代理

from  urllib import request
import requests
url = 'https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&tn=baidu&wd=ip&oq=ip&rsv_pq=b254df33000238fe&rsv_t=caee8Radj5kHT5OB1roVV9axqOakQtWZzVH9BYWRWLXkJtyQBHfRRlcDylg&rqlang=cn&rsv_enter=0&rsv_sug3=1&rsv_sug1=1&rsv_sug7=100&prefixsug=ip&rsp=0&rsv_sug4=1224'

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    }

##########################################################3
# 創(chuàng)建一個(gè)請(qǐng)求對(duì)象
# request_obj = request.Request(url=url,headers=headers)

# 配置代理
# handler = request.ProxyHandler({"https":"113.200.56.13:8010"})

# 創(chuàng)建一個(gè)opener攜帶代理handler(h)

# opener = request.build_opener(handler)
# res = opener.open(request_obj)
####################################################################

res = requests.get(url=url,headers=headers,proxies = {"https":"113.200.56.13:8010"})

with open('./ip.html','wb') as fp:
    fp.write(res.content)
    fp.close()

三、模擬登陸

  • 模擬古詩(shī)文網(wǎng)登陸
    </br>
    使用Session狀態(tài)保持
import requests
from lxml import etree


headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    }

# 登錄頁(yè)的url
page_url = 'https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx'

# 登錄需要提交的內(nèi)容:用戶(hù)名、密碼昆婿、靜態(tài)表單间护、兩個(gè)token、驗(yàn)證碼

# 經(jīng)過(guò)分析挖诸,兩個(gè)token和驗(yàn)證碼是在訪(fǎng)問(wèn)登錄頁(yè)的時(shí)候動(dòng)態(tài)生成
# log_html = requests.get(page_url)
s =requests.Session()    # 狀態(tài)保持
log_html = s.get(page_url,headers=headers)
# 訪(fǎng)問(wèn)登錄頁(yè)的時(shí)候也要用到session茅糜,因?yàn)閠oken值保存在后臺(tái),Session可以記錄后臺(tái)token值


# 獲取兩個(gè)token
login_tree = etree.HTML(log_html.text)

token_a = login_tree.xpath('//*[@id="__VIEWSTATE"]/@value')
token_b = login_tree.xpath('//*[@id="__VIEWSTATEGENERATOR"]/@value')

# 獲取驗(yàn)證碼圖片
code_url = 'https://so.gushiwen.org'+login_tree.xpath('//*[@id="imgCode"]/@src')[0]
print(code_url)
# 下載驗(yàn)證碼
code_info = s.get(code_url)
with open('./code.png','wb') as fp:
    fp.write(code_info.content)
    fp.close()

# 驗(yàn)證碼可以有以下幾種處理機(jī)制疟呐,用第三方的ai平臺(tái)接口來(lái)識(shí)別彬犯、自己訓(xùn)練AI皿渗、人工識(shí)別
code = input('請(qǐng)輸入你看到的驗(yàn)證碼')

# 登錄信息提交的信息url
log_url = 'https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx'

# 請(qǐng)求體
data = {
'__VIEWSTATE': token_a,
'__VIEWSTATEGENERATOR': token_b,
'from': 'http://so.gushiwen.org/user/collect.aspx',
'email': 'fanjianbo666@163.com',
'pwd': '12345678',
'code': code,
'denglu': '登錄'
}

result = s.post(url=log_url,data=data)
print(result.text)
  • 模擬登陸chinaunix網(wǎng)

import requests
from bs4 import BeautifulSoup

headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
    }


# 登錄頁(yè)的url

login_page = 'http://bbs.chinaunix.net/member.php?mod=logging&action=login&logsubmit=yes'
# 訪(fǎng)問(wèn)登錄頁(yè)面
s = requests.Session()
page_html = s.get(login_page,headers=headers)
soup = BeautifulSoup(page_html.text,'lxml')
action = soup.select('form.cl')[0].get('action')
formhash = soup.select('[name="formhash"]')[0].get('value')

# formhash琳彩、action是動(dòng)態(tài)生成


# 登錄接口需要?jiǎng)討B(tài)獲取
login_url = 'http://bbs.chinaunix.net/'+action

data = {
    'formhash':formhash,
    'referer':'http://bbs.chinanuix.net/./',
    'username':'Mrfan666',
    'password':'f12345678',
    'loginsubmit':'true',
    'returen_type':''

}

r = s.post(url=login_url,headers=headers,data=data)
print(r.text)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末漏策,一起剝皮案震驚了整個(gè)濱河市宅粥,隨后出現(xiàn)的幾起案子闽寡,更是在濱河造成了極大的恐慌帮碰,老刑警劉巖相味,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異殉挽,居然都是意外死亡丰涉,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén)斯碌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)一死,“玉大人,你說(shuō)我怎么就攤上這事傻唾⊥洞龋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵冠骄,是天一觀(guān)的道長(zhǎng)伪煤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)凛辣,這世上最難降的妖魔是什么抱既? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮蟀给,結(jié)果婚禮上蝙砌,老公的妹妹穿的比我還像新娘。我一直安慰自己跋理,他們只是感情好择克,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著前普,像睡著了一般肚邢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,729評(píng)論 1 289
  • 那天骡湖,我揣著相機(jī)與錄音贱纠,去河邊找鬼。 笑死响蕴,一個(gè)胖子當(dāng)著我的面吹牛谆焊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浦夷,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼辖试,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了劈狐?” 一聲冷哼從身側(cè)響起罐孝,我...
    開(kāi)封第一講書(shū)人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肥缔,沒(méi)想到半個(gè)月后莲兢,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡续膳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年改艇,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坟岔。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡遣耍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出炮车,到底是詐尸還是另有隱情舵变,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布瘦穆,位于F島的核電站纪隙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扛或。R本人自食惡果不足惜绵咱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望熙兔。 院中可真熱鬧悲伶,春花似錦、人聲如沸住涉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)舆声。三九已至花沉,卻和暖如春柳爽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背碱屁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工磷脯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人娩脾。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓赵誓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親柿赊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子架曹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司闹瞧,掛了不少,但最終還是拿到小米展辞、百度奥邮、阿里、京東罗珍、新浪洽腺、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,206評(píng)論 11 349
  • charles不僅可以抓取電腦的網(wǎng)路請(qǐng)求覆旱,還可以抓取其他設(shè)備的網(wǎng)絡(luò)請(qǐng)求蘸朋。 第一步 設(shè)置charles主界面的pro...
    時(shí)間de歌閱讀 398評(píng)論 0 0
  • 不少腎友都有過(guò)這樣“需要低蛋白飲食”的醫(yī)囑噪沙,那么為什么要進(jìn)行低蛋白飲食呢炼彪?對(duì)腎臟有什么幫助呢? 這需要先從蛋白質(zhì)在...
    營(yíng)養(yǎng)師錦虹閱讀 452評(píng)論 0 2
  • 我要嚴(yán)肅地分析了 randomly說(shuō)我愛(ài)你,其實(shí)是情感抒發(fā)的一種局义。抒發(fā)喜爷,不是宣泄,情感怎么都是積極向上的萄唇。哪怕兩個(gè)...
    阿怡是娉爺閱讀 869評(píng)論 0 1
  • 我買(mǎi)這張彩票檩帐,純粹是個(gè)意外。我對(duì)彩票雖然也報(bào)有幻想另萤,但是并不癡迷轿塔。可是那天下班回家路過(guò)十字路口的那個(gè)彩票站的時(shí)候,...
    剪窗閱讀 181評(píng)論 0 0