Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
私信小編01即可獲取大量Python學(xué)習(xí)資料
因?yàn)槲抑車男』锇閭兲焯旄艺f(shuō)的最多的一句話就是:空間第一條點(diǎn)贊。
所以說(shuō)我還不如直接做一個(gè)自動(dòng)點(diǎn)贊的代碼呢,免得天天催我點(diǎn)贊。
首先既然是對(duì) QQ空間的一系列操作,自然是先解決登陸方面,在這篇文章里面我就不過(guò)多介紹了,因?yàn)槲疑蠋灼谥皩?duì)QQ空間已經(jīng)做了一定的介紹了。直接放出鏈接就好。歡迎看博主以前的文章
def search_cookie():
qq_number=input('請(qǐng)輸入qq號(hào):')
if not __import__('os').path.exists('cookie_dict.txt'):
get_cookie_json(qq_number)
with open('cookie_dict.txt', 'r') as f:
cookie=json.load(f)
return True
def get_cookie_json(qq_number):
password=__import__('getpass').getpass('請(qǐng)輸入密碼:')
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
login_url='https://i.qq.com/'
chrome_options=Options()
chrome_options.add_argument('--headless')
driver=webdriver.Chrome(options=chrome_options)
driver.get(login_url)
driver.switch_to_frame('login_frame')
driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[@id="u"]').send_keys(qq_number)
driver.find_element_by_xpath('//*[@id="p"]').send_keys(password)
time.sleep(1)
driver.find_element_by_xpath('//*[@id="login_button"]').click()
time.sleep(1)
cookie_list=driver.get_cookies()
cookie_dict={}
for cookie in cookie_list:
if 'name' in cookie and 'value' in cookie:
cookie_dict[cookie['name']]=cookie['value']
with open('cookie_dict.txt', 'w') as f:
json.dump(cookie_dict, f)
return True
def get_g_tk():
p_skey=self.cookie['p_skey']
h=5381
for i in p_skey:
h +=(h << 5) + ord(i)
g_tk=h & 2147483647
當(dāng)我們拿到cookie信息和g_tk這個(gè)參數(shù)之后,繼續(xù)去尋找空間好友動(dòng)態(tài)的XML在何處。
首先點(diǎn)到XML位置一個(gè)個(gè)查找,發(fā)現(xiàn)有一個(gè)feeds3_html_more很像,點(diǎn)進(jìn)去發(fā)現(xiàn)的確是我們要找的url鏈接。
這個(gè)鏈接所需要的參數(shù)有很多,在這里列舉出來(lái)
這些參數(shù)中類似于可變參數(shù)的一共有五個(gè)。
def get_space():
your_url='https://user.qzone.qq.com/' + str(qq_number)
html=requests.get(your_url,headers=headers,cookies=cookie)
if html.status_code==200:
qzonetoken=re.findall('window.g_qzonetoken=(.*?);',html.text,re.S)[1].split('"')[1]
return True
'rd': '0.9311604844249088',
'windowId': '0.51158950324406',
'usertime': str(round(time.time() * 1000)),
def get_g_tk():
p_skey=self.cookie['p_skey']
h=5381
for i in p_skey:
h +=(h << 5) + ord(i)
g_tk=h & 2147483647
我們拿到XML以及各個(gè)參數(shù)后,即可訪問(wèn)該網(wǎng)頁(yè)獲取其返回值了。
但是這個(gè)返回與其他的有一些不同的是,它不僅僅是個(gè)json文件,我們無(wú)法獲取后直接轉(zhuǎn)換成字典格式去給我們使用,這就很麻煩。
我們獲取字符串后,首先先將前后不一致的都切片扔掉,之后經(jīng)過(guò)一系列處理后發(fā)現(xiàn),我們很難將這個(gè)看似像json格式的字符串轉(zhuǎn)換成字典。
在這里我繼續(xù)介紹一個(gè)第三方庫(kù)demjson。
demjson 可以解決不正常的json格式數(shù)據(jù)
demjson的使用方法很簡(jiǎn)單。
encode將 Python 對(duì)象編碼成 JSON 字符串decode將已編碼的 JSON 字符串解碼為 Python 對(duì)象
# 例子
# -*- coding: utf-8 -*-
import demjson
js_json="{x:1, y:2, z:3}"
py_json1="{'x':1, 'y':2, 'z':3}"
py_json2='{"x":1, "y":2, "z":3}'
data=demjson.decode(js_json)
print(data)
# {'y': 2, 'x': 1, 'z': 3}
data=demjson.decode(py_json1)
print(data)
# {'y': 2, 'x': 1, 'z': 3}
data=demjson.decode(py_json2)
print(data)
# {'y': 2, 'x': 1, 'z': 3}
我們使用demjson直接將該字符串轉(zhuǎn)換為耳熟能詳?shù)淖值涓袷剑崛∑渲械膁ata的data,即為前八條動(dòng)態(tài)的每個(gè)參數(shù),但我們這里只要第一個(gè)說(shuō)說(shuō)的動(dòng)態(tài)信息。
text=html.text[10:-2].replace(" ", "").replace('\n','')
json_list=demjson.decode(text)['data']['data']
qq_spaces=json_list[0]
我們拿到其信息后,先提取一些我們比較想知道的東西,比如名字、QQ號(hào)、發(fā)布時(shí)間、所獲贊數(shù)、說(shuō)說(shuō)內(nèi)容、說(shuō)說(shuō)地址等等結(jié)果。
在 qq_spaces 參數(shù)中我們發(fā)現(xiàn)里面有一個(gè)很長(zhǎng)也很特殊的一個(gè)結(jié)果是 html 結(jié)果,這個(gè)結(jié)果里面很長(zhǎng),簡(jiǎn)單來(lái)看是個(gè)網(wǎng)頁(yè)常規(guī)代碼,應(yīng)該是被JavaScript寫入到網(wǎng)頁(yè)中了,既然不是全部代碼,那么只能用正則提取一下里面的具體我們需要的東西了。
content=str(qq_spaces['html'])
try:zanshu=re.findall('<spanclass="f-like-cnt">(.*?)</span>人覺得很贊</div>',content,re.S)[0]
except:return None
time_out=str(qq_spaces['feedstime'])
print("名字:"+str(qq_spaces['nickname']))
print("QQ號(hào):"+str(qq_spaces['opuin']))
print("時(shí)間:"+time_out)
print('贊數(shù):'+zanshu)
times=qq_spaces['abstime']
his_url=re.findall('data-curkey="(.*?)"',content,re.S)[0]
在QQ空間隨便找個(gè)好友點(diǎn)個(gè)贊吧,這樣我們才能接收到請(qǐng)求。
我們首先清空原來(lái)動(dòng)態(tài)產(chǎn)生的抓包,直接點(diǎn)個(gè)贊發(fā)現(xiàn)關(guān)于dolike的url只有三個(gè),第一個(gè)是個(gè)POST請(qǐng)求,應(yīng)該是我們所需要的點(diǎn)贊網(wǎng)址。
我們獲取到URL后,找到里面所需要的參數(shù)。發(fā)現(xiàn)一共有十一個(gè)參數(shù),在這里猜測(cè)應(yīng)該不存在加密參數(shù)。
既然參數(shù)沒(méi)什么問(wèn)題那就直接寫代碼吧。
def get_zan(times,his_url):
data={'g_tk': g_tk,'qzonetoken': qzonetoken}
post_data={
'qzreferrer': 'https://user.qzone.qq.com/'+str(qq_number),
'opuin': str(qq_number),
'unikey': str(his_url),
'curkey': str(his_url),
'from': '1',
'appid': '311',
'typeid': '0',
'abstime': str(times),
'fid': str(his_url).split('/')[-1],
'active': '0',
'fupdate': '1'
}
url='https://user.qzone.qq.com/proxy/domain/w.qzone.qq.com/cgi-bin/likes/internal_dolike_app?'
url=url + urllib.parse.urlencode(data)
html=requests.post(url,headers=headers,cookies=cookie,data=post_data)
if html.status_code==200:print("點(diǎn)贊成功" if len(html.text)==469 else "點(diǎn)贊失敗")
因?yàn)闃漭刹⒉皇呛懿诲e(cuò)的問(wèn)題,這個(gè)代碼做不到絕對(duì)的秒贊。
def run_tolike():
if os.path.exists('time_out.txt'):
with open('time_out.txt','r') as f:
time_out=f.read()
else:time_out=None
while True:
get_friends_list()
time.sleep(__import__('random').randint(0,5)) # 秒贊?
if not time_out or time_out !=time_out:
time_out=time_out
get_zan(times,his_url)
return True
else:log('說(shuō)說(shuō)無(wú)更新,等待中...')
with open('time_out.txt','w') as f:
f.write(str(times))
SEO必須要懂HTML,說(shuō)的是一點(diǎn)都沒(méi)錯(cuò),不過(guò)其實(shí)是不需要全部都懂,最重點(diǎn)的你懂了會(huì)用,基本上都是事半功倍了。可以這么說(shuō)一個(gè)不懂代碼的優(yōu)化人員不算是一個(gè)合格的好優(yōu)化。下面就總結(jié)一下做優(yōu)化,必須要懂得幾個(gè)最重要的html代碼,希望能幫到大家。
1.Title網(wǎng)站標(biāo)題標(biāo)簽
Title標(biāo)簽有兩個(gè)地方的用途一個(gè)是用在網(wǎng)站的主題說(shuō)明,用來(lái)告訴網(wǎng)友這個(gè)網(wǎng)站的主旨是什么,是什么樣的網(wǎng)站,一般用來(lái)說(shuō)明網(wǎng)站主題的詞2-3個(gè)為最佳。目前搜索引擎對(duì)Title的重視程度尤為重視所以建議慎重考慮關(guān)鍵詞。
Title標(biāo)簽的第二個(gè)用法是,在A標(biāo)簽里面對(duì)鏈接文字強(qiáng)調(diào)說(shuō)明的。鼠標(biāo)經(jīng)過(guò)會(huì)有提示,可以增加網(wǎng)站關(guān)鍵詞的密度。
2.description描述標(biāo)簽
描述標(biāo)簽一般會(huì)出現(xiàn)在抓取的快照里面,對(duì)網(wǎng)站的收錄SEO排名也是有一定的影響,不過(guò)現(xiàn)在搜索引擎都是智能化的,有時(shí)候抓取的并不是你自己所寫的描述標(biāo)簽。而會(huì)根據(jù)用戶搜索關(guān)鍵詞相關(guān)度匹配。一般建議長(zhǎng)度在100 個(gè)字左右不宜過(guò)長(zhǎng)。
3.keywords關(guān)鍵詞標(biāo)簽
關(guān)鍵詞keywords設(shè)置現(xiàn)在在搜索比重上面也越來(lái)越不明顯了,好多搜索已定提出可以放棄設(shè)置,因?yàn)樗阉饕婺軌蜃詣?dòng)抓取,建議適當(dāng)設(shè)置3個(gè)左右即可。
H標(biāo)簽
H1標(biāo)簽一般出現(xiàn)在頁(yè)面LOGO,或者單個(gè)文章的主標(biāo)題部分。一個(gè)頁(yè)面最好能控制在2個(gè)之內(nèi)切不可過(guò)多。
H2標(biāo)簽一般會(huì)用在網(wǎng)站欄目或者小標(biāo)題標(biāo)題部分。
H3標(biāo)簽一般用在側(cè)欄小標(biāo)題子標(biāo)題部分。
4.<b>和<strong>文字加粗標(biāo)簽
文字加粗著重強(qiáng)調(diào)這文字比較重要,它會(huì)告訴搜索引擎此文字,在整個(gè)頁(yè)面文字中比較重要,所以一般加粗一些關(guān)鍵詞,一篇文章設(shè)置3-5個(gè)為宜,不可整篇加粗或者整篇不加粗。
A標(biāo)簽中的,Nofollow權(quán)重不傳遞,_blank新窗口打開
rel標(biāo)簽的屬性Nofollow權(quán)重不傳遞屬性,一般用于友情鏈接,或者網(wǎng)站有轉(zhuǎn)出站外的鏈接。
target標(biāo)簽的屬性_blank新窗口打開,以保留用戶在網(wǎng)站的停留時(shí)間,降低網(wǎng)站跳出率。
se_prerender_url標(biāo)簽?zāi)壳斑€在研究,不過(guò)發(fā)現(xiàn)一些站長(zhǎng)站都已經(jīng)用上,搜索發(fā)現(xiàn)是谷歌吸引爬蟲而出,目前尚不具體了解用途。
5.alt圖片描述標(biāo)簽
因?yàn)閳D片不具有SEO屬性,所以alt越顯重要,ALT主要是圖片描述說(shuō)明只用,用可以增加關(guān)鍵詞密度,但切記不可過(guò)多頻繁。
內(nèi)部鏈接文字:10分
標(biāo)題title:10分
域名:7分
H1,H2字號(hào)標(biāo)題:5分
每段首句:5分
路徑或文件名:4分
相似度(關(guān)鍵詞堆積):4分
每句開頭:1.5分
文本用法(內(nèi)容):1分
title屬性:1分 (不是<title>, 是A標(biāo)簽中title屬性)
加粗或斜體:1分
alt標(biāo)記:0.5分
Meta描述(Description屬性):0.5分
Meta關(guān)鍵詞(Keywords屬性):0.05分
--------------------------------------------------------
想了解更多網(wǎng)站優(yōu)化,網(wǎng)絡(luò)營(yíng)銷,網(wǎng)站運(yùn)營(yíng),SEO/SEM/DSP,微博微信營(yíng)銷
可以百度搜索王塵宇查看更多進(jìn)行交流。
關(guān)注王塵宇個(gè)人QQ/微信:314111741
想繪圖插件5.2(MxDraw5.2)
夢(mèng)想CAD是專業(yè)的CAD插件(控件),經(jīng)過(guò)10年研發(fā),可輕松在網(wǎng)頁(yè)、手機(jī)及BS/CS程序中使用CAD和瀏覽編輯DWG文件,不需安裝AutoCAD即可運(yùn)行。
控件核心代碼使用VC++ 2010開發(fā),至今已有三十萬(wàn)行代碼規(guī)模;2007年發(fā)布第一個(gè)Release版本,經(jīng)過(guò)多年的版本更迭與技術(shù)沉淀,控件已經(jīng)十分快速穩(wěn)定。在關(guān)鍵的 空間搜索 上使用了復(fù)雜度極低的算法,并且使用 匯編 優(yōu)化,可以處理50萬(wàn)級(jí)的實(shí)體,圖形的顯示和處理效率比同類產(chǎn)品高出很多。
夢(mèng)想繪圖3d插件6.0(MxDraw6.03d)
使用二位控件的顯示核心,基于 OpenCASCADE幾何造型引擎 ,創(chuàng)建錐、柱、環(huán)等基本幾何體,對(duì)幾何體進(jìn)行 布爾操作 ,如:相加、相減、相較、倒角、斜切、鏤空、偏移、掃視;幾何 空間關(guān)系計(jì)算 ,如:法線、點(diǎn)積、叉積、投影、擬合;幾何體分析,如:質(zhì)心、體積、曲率; 空間變換 ,如:平移、縮放、旋轉(zhuǎn)。
夢(mèng)想繪圖手機(jī)版插件6.0(MxDrawAndroid6.0/MxDrawIOS6.0/)
使用二維控件的顯示核心,并專對(duì)手機(jī)顯示CAD圖紙做了極速優(yōu)化 ,是目前手機(jī)上顯示DWG文件非常快的控件。
夢(mèng)想CAD軟件5.2(MxCAD5.0)
使用二維控件的顯示核心,完全自主的二維CAD繪圖軟件,程序簡(jiǎn)潔、運(yùn)行快速、功能齊全、穩(wěn)定可靠;兼容 所有版本的DWG文件 ,支持 ARX的二次開發(fā)接口。
安裝包下載
點(diǎn)擊此處下載
運(yùn)行環(huán)境
支持以下的32/64平臺(tái)的系統(tǒng):WindowsXP、Windows2000、WindowsVista、WindowsServer、Windows7、Windows8、Windows10。
支持以下的瀏覽器:IE所有版本、火狐、谷歌4.5及以前的版本、360瀏覽器(兼容模式)、QQ瀏覽器。
1
QQ瀏覽器使用了最新的谷歌瀏覽器內(nèi)核,可使用QQ瀏覽器代替谷歌瀏覽器運(yùn)行控件
支持語(yǔ)言
網(wǎng)頁(yè)使用,支持 IE所有版本 。
控件支持如下的語(yǔ)言進(jìn)行二次開發(fā):VC、VB、CSharp、Delphi、HTML、ASP、JAVA、JavaScript、C++、 Builder、PHP、.Net、易語(yǔ)言、PowerBuild等。
編程接口
有一萬(wàn)多個(gè)接口函數(shù) 可供調(diào)用,提供Object Arx,AutoCAD VBA、COM開發(fā)接口,與AutoCAD二次開發(fā)類似的接口。
文件格式
控件支持自定義文件格式,擴(kuò)展名為.mxg,mxg文件 穩(wěn)定可靠 ,能 完整呈現(xiàn)DWG文件 ,支持圖紙預(yù)覽,加密;支持DWG、DXG、BMP、JPG、PNG、DWF、PDF、GIF、ICO DGN、SHP等。
支持SHX、TrueType字體。
控件與AutoCAD兼容,支持AutoCAD R14至AutoCAD 2017的 所有DWG圖紙格式 ,并保證能支持將來(lái)新出現(xiàn)的AutoCAD文件格式。
網(wǎng)絡(luò)功能
在控件支持的瀏覽器(見 運(yùn)行環(huán)境 )中,控件可瀏覽服務(wù)器上的DWG文件,把DWG文件保存到服務(wù)器、在服務(wù)器后臺(tái)運(yùn)行控件、把DWG轉(zhuǎn)成其他格式、提取信息等;支持FTP連接,二進(jìn)制數(shù)據(jù)流加載。
在網(wǎng)頁(yè)中使用控件演示
主要功能
DWG批量轉(zhuǎn)到PDF、DWF,圖紙信息搜索提取,測(cè)距離,算面積,圖章, 批注 ,捕捉,正交,實(shí)體閃爍,曲線離散,偏移,打斷,陣列,擴(kuò)展數(shù)據(jù)讀寫,擴(kuò)展記錄讀寫,構(gòu)造選擇集,打印, 動(dòng)畫 , 自定義實(shí)體 ,組,右鍵菜單, 超連接 ,Undo,Redo,字典,圖層,標(biāo)注樣式,線型樣式,文字樣式,視口,布局, 用戶坐標(biāo)系 ,系統(tǒng)變量,圖紙比較,圖紙剪切,界面切換,動(dòng)態(tài)提示,google百度地圖等。
打印功能
框選、全屏打印、后臺(tái)批量打印、多個(gè) 圖紙嵌套打印 、與 網(wǎng)頁(yè)合并打印 等。
顯示功能
鳥瞰、放大鏡、視區(qū)平移、縮放、視區(qū)旋轉(zhuǎn)、鷹眼、 透明顯示 、背景、水印、網(wǎng)格、回溯顯示、最佳顯示、顯示/隱藏工具條、瀏覽模式、 分屏顯示 、矢量線、矢量圓、 動(dòng)畫 、動(dòng)態(tài)標(biāo)注、疊加對(duì)比顯示等。
圖元支持
主要實(shí)體有:直線,圓弧,Polyline,樣條線,圓,橢圓,橢圓弧,IMAGE,點(diǎn),塊引用,外部塊參照,射線,云線,文本,多行文本,對(duì)齊標(biāo)注,旋轉(zhuǎn)標(biāo)注 ,半徑標(biāo)注,直徑標(biāo)注,角度標(biāo)注,OLE對(duì)象,布局,視口,圖層,線型,文字樣式,命名字典,標(biāo)注, 自定義實(shí)體 ,代理實(shí)體, 反應(yīng)器 等。主要編輯有:移動(dòng),夾點(diǎn)拉伸,偏移,刪除,復(fù)制,粘貼,旋轉(zhuǎn),縮放,鏡向,離散,圖案填充,實(shí)心填充,打碎,計(jì)算曲線長(zhǎng),面積,最jin點(diǎn),交點(diǎn),導(dǎo)角, 文字變線條 等。
編輯支持
移動(dòng)、夾點(diǎn)拉伸、偏移、刪除、復(fù)制、粘貼、旋轉(zhuǎn)、縮放、鏡向、離散、圖案填充、實(shí)心填充、打碎、計(jì)算曲線長(zhǎng)、面積、最近點(diǎn)、交點(diǎn)、倒角、文字變線條等。
幾何運(yùn)算
面積,夾角,向量,矩陣,旋轉(zhuǎn),縮放,最進(jìn)點(diǎn),最進(jìn)距離,垂足,參數(shù),鏡向,平移,交點(diǎn),打斷,延伸, 最短路徑 , 最長(zhǎng)路徑 。
支持事件
鼠標(biāo)事件 , 鍵盤事件 ,選擇修改,夾點(diǎn)編輯,打圖紙完成,命令開始,命令執(zhí)行完成,視區(qū)變化,動(dòng)態(tài)提示,動(dòng)態(tài)繪制,超連接點(diǎn)擊,對(duì)象修改,命令執(zhí)行,進(jìn)度條變動(dòng),系統(tǒng)變量修改,控件初始化完成,等事件。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。