selenium中css選擇器使用,如何通過網絡爬蟲獲取網站相關數據?
1、在站內尋找API入口;
2、用搜索引擎搜索“某網站API”;
3、抓包,有的網站雖然用到了ajax,但是通過抓包還是能夠獲取XHR里的json數據的(可用抓包工具抓包,也可以通過瀏覽器按F12抓包:F12-Network-F5刷新)。二、不開放API的網站1、如果網站是靜態頁面,那么可以用requests庫發送請求,再通過HTML解析庫(lxml、parsel等)來解析響應的text;解析庫強烈推薦parsel,不僅語法和css選擇器類似,而且速度也挺快,Scrapy用的就是它。2、如果網站是動態頁面,可以先用selenium來渲染JS,再用HTML解析庫來解析driver的page_source。
熟練掌握并默寫標記選擇器的基本語法?
1.標記選擇器主要應用在HTML頁中的標記樣式選擇。如P選擇器就用于聲明網頁中有P標記的文本內容,同理,H1選擇器則可以標記頁面中H1的樣式。例如: H1 { font-size:14px; font-weight:bold; color:#ccc;}以上代碼表示在所有應用H1選擇器的地方,將文字的大小設為14像素并加粗,同時將顏色設為灰色,如果要改變H1的顏色,只需將color屬性更改就可以了,比如將color設為#e7eefe來與網頁的其他地方協調。 2.類別選擇器 這是一類最常用的選擇器,用它來定義網頁中需要特殊表現的樣式,類別選擇器的名稱可以由作者自由定義,一般來講類別選擇器的命名最好有一定的意義,使CSS代碼更易維護和閱讀。例如定義導航就可以使用.daohang{}或者是.nav{},不要使用簡略或者特殊的字符串,否則可能三天后當你再讀你的CSS代碼時,就連你自己都搞不清一個樣式到底是做什么用的! 類別選擇器就是CSS類,在HTML表現為調用的class。例如: (1)style.css文件中定義 .title { margin:10px; padding:2px 5px;}(2)HTML文件中
在上述定義中,p標簽將引用CSS文件中的title樣式應用到整個p覆蓋的范圍。p將顯示為一個上下左右margin各為10px,上下padding為2px,左右padding為5px的矩形。 請注意類別選擇器CSS定義和標記選擇器的區別:在CSS文件中,標記選擇器前邊沒有"."號,下面我們還會講到ID選擇器,它的定義也不一樣,每個ID選擇器樣式前有一個"#"號,以確定其為ID選擇器,而在HTML中則用ID="style"引用。值得注意的是,一個標簽可以同時應用多個class選擇器,如,具體大家可以在下邊思考并做下實驗,筆者在這就不舉例了。3.ID選擇器(1)ID選擇器用法和class基本沒有區別,他們的不同之處就在于ID選擇器只能在HTML頁中使用一次,而class則可以任意多次調用,在CSS文件中,ID 選擇器一般寫成 #idname { bgcolor:#339; font-size:16px;}如果一個ID應用于多個HTML標記,則有可能造成IE編譯錯誤,并且由于ID選擇器可以被JAVASCRIPT等調用,所以多個ID會導致JAVA編譯錯誤并崩潰! (2)HTML的引用 在HTML中引用ID選擇器的代碼如下所示: 并且ID選擇器不能像類別選擇器那樣同時被一個標簽調用。這也是完全錯誤的語法。 復合選擇器就是基本選擇器通過不同的鏈接方式構成的。 復合選擇器就是兩個或多個基本選擇器,通過不同方式鏈接而成的選擇器。css規則定義有哪些選擇符?
css選擇符(選擇器)有以下這些:
1、通配選擇符( * ):匹配任意元素。
2、id選擇符( # myid):匹配 ID 等于“myid”的任意元素 。
3、類選擇符(.myclassname):匹配 class 等于“myclassname”的任意元素.
4、標簽選擇符(div, h1, p):選擇指定元素名稱的所有元素。
5、相鄰選擇符(E + F):用于選擇(不是內部)指定的第一個元素之后緊跟的元素。
6、子選擇符(E > F):用于選取帶有特定父元素的元素,例ul > li,選擇所有父級是 <ul> 元素的每個 <li> 元素。(學習視頻分享:css視頻教程)
7、后代選擇符(E F):用于選取元素內部的元素。
8、偽類和偽元素選擇符:用于向某些選擇器添加特殊的效果。
怎樣區分后代選擇器和子代選擇器?
1.第一從符號上來區分后代選擇器:是用空格來分隔開來 例如<h1>一個<span>人</span>的戰爭</h1> 就是h1 span{}子代選擇器:用特殊符號> 例如 h1>span{}
2.第二從用法上區分后代選擇器html部分:<ul class="study"> <li>物理 <ul> <li>力學</li> <li>聲學</li> <li>電磁學</li> </ul> </li> <li>數學 <ul> <li>微積分</li> <li>概率論</li> <li>博弈論</li> </ul> </li> </ul> css部分//使用子代選擇器的效果.study >li{ border:1px solid red;/*只給物理和數學加一個紅色方框*/}//使用后代選擇器的效果.study li{ border:1px solid red;/*給物理 力學 聲學 電磁學 和數學 微積分 概率論博弈論都加一個紅色方框*/}這說明子代是他是單傳只給物理和數學就斷子絕孫,后代是一代傳一代。
子代選擇器時效果圖:
后代選擇器時效果圖: