首先,爬這類網(wǎng)站你得看網(wǎng)頁(yè)的源碼,而不僅僅是右鍵檢查。因?yàn)閞equest.get獲取的是網(wǎng)頁(yè)的源碼,而不是瀏覽器修飾后你看到的html。
通過網(wǎng)頁(yè)源碼可以看到
你獲取的就是這玩意。甚至你可以soup.findAll('table'),能解析到的‘table’也只有這玩意。
本身可以跳過talbe標(biāo)簽,可以通過 class="verdana"的span標(biāo)簽、class="date"的td標(biāo)簽找得更細(xì),但源碼看
你所需要的東西是js渲染上去的,不是本身html代碼里就有的。
所以你需要的東西在這里:https://www.itjuzi.com/invest...
去request.get這個(gè)url,再解析(可能需要用到j(luò)son這個(gè)包),才能獲得你想要的東西
其次,.find(‘table’)是遍歷所有talbe標(biāo)簽后返回第一個(gè)<table>標(biāo)簽,在你不確定有多少<table>標(biāo)簽的情況下,你這樣寫也只返回第一個(gè)。所以可以用.findAll看看有多少table標(biāo)簽,確定第幾個(gè),或者像上面提到,給它加限定條件,比如Soup.find('table',class_='list-invecase'),或是Soup.find('span',class_='verdana')這樣,更有利于你的尋找。
最后,建議官方文檔,https://www.crummy.com/softwa...
mac下正常,ubuntu下正常,估計(jì)是windows的python命令行不支持吧,我在win上也是033識(shí)別成亂碼
lala = [1,1,1,2,3,4,5,8,10,22,24,25,26,66]
res = []
tmp = [lala[0]]
for i in range(1, lala.__len__()):
if lala[i] - lala[i-1] == 1:
tmp.append(lala[i])
else:
if len(tmp) == 1:
res.append(tmp[0])
tmp = [lala[i]]
else:
res.append(tmp)
tmp = [lala[i]]
print(res)
抓包工具:fiddler,charles;
1.如果是https請(qǐng)求,需要設(shè)置代理,在手機(jī)上安裝相關(guān)軟件的證書,以中間人攻擊的方式,能夠看到http傳輸?shù)臄?shù)據(jù);
2.抓包開始,請(qǐng)清除緩存,不少app為了節(jié)約加載時(shí)間,一些數(shù)據(jù)會(huì)緩存。
3.盡量避免其他軟件在抓包時(shí)的干擾,后臺(tái)清理掉,或者在抓包軟件中設(shè)置只針對(duì)某一個(gè)域名抓取;
寫個(gè)回答試試,請(qǐng)忽略!
一般不會(huì)的,requests只獲取了文檔,里面的JS沒有獲取,所以不會(huì)被統(tǒng)計(jì)。
我一般設(shè)置的是遠(yuǎn)程的deployment。如下圖:
對(duì)于 add local 設(shè)置的虛擬環(huán)境,我沒有做過,即使是本地的虛擬環(huán)境,我也沒有設(shè)置過這個(gè),里面的內(nèi)容就如下圖:
首先要搞清楚『域名』和『主機(jī)名』的區(qū)別。baidu.com是域名嗎?www.baidu.com是域名嗎?實(shí)際上,當(dāng)你查看DNS設(shè)置的時(shí)候,會(huì)發(fā)現(xiàn)有2條A記錄。如果我們把baidu.com理解為域名的話,域名是不可以訪問的,只有主機(jī)名才可以訪問。那為什么你可以輸入http://baidu.com依然能訪問呢?這是因?yàn)樵?code>DNS里有一條@記錄指向一個(gè)IP地址,這個(gè)@的意思就相當(dāng)于http://@.baidu.com,但是不顯示出來,所以變成了http://baidu.com。所以,baidu.com是域名,而@.baidu.com和www.baidu.com是主機(jī)名。
對(duì)于域名來說,是需要有DNS或者NS解析的。所以當(dāng)你查詢說:請(qǐng)問baidu.com這個(gè)域名的NS是什么?返回的結(jié)果告訴你ns2.baidu.com這個(gè)主機(jī)就是用來解析baidu.com這個(gè)域名的。下一步,你可以問ns2.baidu.com這臺(tái)主機(jī):請(qǐng)你告訴我:www.baidu.com這臺(tái)主機(jī)的IP地址是多少?
你的第2個(gè)問題,你不要加+short,而直接查詢,你會(huì)看到www.a.shifen.com是一條CNAME記錄,它不是A記錄。CNAME的意思是別名,相當(dāng)于快捷方式,所以在這里,當(dāng)你訪問www.baidu.com這條主機(jī)記錄的時(shí)候,它首先來到www.a.shifen.com這條記錄,從這里再轉(zhuǎn)向到下面的數(shù)字IP。而baidu.com,我上面講了,它實(shí)際相當(dāng)于是@.baidu.com,對(duì)它沒有設(shè)置CNAME這樣的別名,而是直接設(shè)置了IP地址,所以看到的只是數(shù)字了。
希望我講明白了,不明白的可以繼續(xù)探討。
許多機(jī)器在做位移操作的時(shí)候都是只出理低log(w)位,也就是所說的w%k位
(但是,具體有哪些機(jī)器我沒有了解過)
那么,這么處理的原因,在我看來,是由CPU對(duì)位移指令的實(shí)現(xiàn)所決定的。就32位機(jī)器而言,Intel CPU(具體是從哪一代開始我記不清了)會(huì)對(duì)位移量截取低五位。
那么反映到高級(jí)語言層面上,有一些語言標(biāo)準(zhǔn)會(huì)遵循這個(gè)操作,其對(duì)應(yīng)的編譯器或者解釋器便會(huì)按照標(biāo)準(zhǔn)來處理,位移的時(shí)候截取位移量的低log(w)位,比如JavaScript的解釋器。
但是有一些語言規(guī)范是規(guī)避了這個(gè)問題的,比如C語言,這個(gè)操作就是未定義行為,它的編譯器在處理時(shí)就如上面有答主所說過的,將按自己的理解來處理。
非常典型的一點(diǎn)你可以嘗試一下,在C語言中用gcc編譯器試一下這段代碼
int a = 33;
printf("%d", 1 << a); // 2
printf("%d", 1 << 33); // 0
第一種情況,在編譯過程中,由于gcc編譯器不知道變量a的值,所以,位移量為33,CPU執(zhí)行時(shí),會(huì)截取低5位,答案是2
第二種情況,在編譯過程中,如果加上-Wall編譯選項(xiàng),gcc編譯器會(huì)提醒你,位移量大于類型的寬度,所以,按照gcc自己處理的來,得到的答案是0,就是你的想法。
至于為什么要截取低log(W)位,這大概是和CPU處理字長(zhǎng)有關(guān)
我的理解是這樣,如果有錯(cuò)誤,忘請(qǐng)指正
let allSpan = document.querySelectorAll('#yourdiv span')
let spanArr = [];
Array.prototype.forEach.call(allSpan, (v) => {
if(v.className != "") spanArr.push(v);
})
真巧前幾天有點(diǎn)類似的需求,但不是寫終端,就簡(jiǎn)單寫了下,獲取一個(gè)命令行可以隨便輸入命令,并且輸入的命令之間不是隔離狀態(tài),代碼如下 給你點(diǎn)參考,至于寫終端,你可能需要加很多東西了,并不是能輕易辦到的,建議secureCRT for mac 我就在用表示 還行
import paramiko
import time
ip = "10.211.55.6"
port = 22
username = "root"
password = "redhat"
def recv_str(client_channel, tag_str=None):
result = client_channel.recv(65535).decode()
while not result.endswith(tag_str):
result = result + client_channel.recv(65535).decode()
return result
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=ip, port=port, username=username, password=password,
timeout=60)
channel = client.invoke_shell()
channel.send("ping www.baidu.com\n")
time.sleep(2)
channel.send(chr(3))
res = recv_str(channel, "[root@centos-linux ~]# ")
print(res)
client.close()反射主要是用來做框架的,一般不會(huì)去使用的。
是不是用了powerline? 應(yīng)該是字體不支持,你去裝幾個(gè)powerline相關(guān)的字體試試。
ascii表中是不包括中文的, 先encode成utf-8吧
commit提交一下。或者改成使用with語句。
從不看教程不看文檔的嗎?
以下是大膽地瞎猜內(nèi)容
在C/C++中,輸出到標(biāo)準(zhǔn)輸出流里面的內(nèi)容首先會(huì)被寫到一個(gè)緩沖區(qū)內(nèi),而不是立即顯示在屏幕上,例如下面這個(gè)程序
#include <stdio.h>
#include <unistd.h>
int main(void)
{
while (1)
{
printf("%c", '#');
sleep(1);
}
}
編譯運(yùn)行,你不會(huì)看到任何輸出,因?yàn)橹挥性?strong>緩沖區(qū)中出現(xiàn)換行符\n 或者你手動(dòng)清空緩沖區(qū)時(shí),里面的內(nèi)容才會(huì)輸出到屏幕上。下面這個(gè)程序就可以
#include <stdio.h>
#include <unistd.h>
int main(void)
{
while (1)
{
printf("%c", '#');
fflush(stdout);
// 或者直接這樣
// printf("%c\n", '#');
sleep(1);
}
}
所以python解釋器里面的標(biāo)準(zhǔn)輸出可能也是帶緩沖的,你的第一個(gè)例子是沒有\n 的,而第二個(gè)是有的。
簡(jiǎn)單查了一下資料也發(fā)現(xiàn)是這樣的,可以用sys.stdout.flush() 或者采用樓上的方案
把接口url通過props傳遞進(jìn)去
如果不是做特定的oj題目的話, 推薦使用xml, 更直觀, 也更好管理
from lxml import etree
def gen_xpath(path):
return '//root/' + '/'.join(path)
def add_value(root, path, value):
purpose_path = gen_xpath(path)
folder = root.xpath(purpose_path)
parent_folder = root
if not folder:
for i, name in enumerate(path, 1):
temp_path = gen_xpath(path[:i])
temp_folder = root.xpath(temp_path)
if not temp_folder:
parent_folder = etree.SubElement(parent_folder, name)
else:
parent_folder = temp_folder
folder = root.xpath(purpose_path)[0]
file = etree.SubElement(folder, 'file')
file.set('name', value[0])
file.set('size', value[1])
if __name__ == '__main__':
root = etree.Element('root')
add_value(root, ['A', 'B', 'C'], ('output.txt', '2mb'))
add_value(root, ['X', 'Y'], ('log.txt', '10kb'))
add_value(root, ['A', 'B', 'C'], ('video.mp4', '2GB'))
etree.ElementTree(root).write('test.xml', pretty_print=True)
輸出結(jié)果:
<root>
<A>
<B>
<C>
<file name="output.txt" size="2mb"/>
<file name="video.mp4" size="2GB"/>
</C>
</B>
</A>
<X>
<Y>
<file name="log.txt" size="10kb"/>
</Y>
</X>
</root>
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。