1. 程式人生 > 其它 >百度圖片

百度圖片

問題成因:喜歡在百度稿子裡,搞資料,但VIP,大家都懂。則看原始碼,想全部找到。可是看 一個ppt文件, 裡面都是連線,發現都是圖片,單獨點選連線能開啟圖片。

恍然大悟。粘出來的 連線 是 <img .... ;

</div> <div> 混雜的,則寫了個 小 C程式,處理了一下。

#include<stdio.h> 
int main(){
	
	int i,j;
	char c1,c2,c3,c4;
	
	freopen("jt.txt","r",stdin);
	freopen("jto.txt","w",stdout);
	
	while(1){
		scanf("%c",&c1);		
		if(c1=='<')
		{
			scanf("%c%c%c",&c2,&c3,&c4);
			if(c2=='t' && c3=='i' && c4=='g') // <tig  挺 
			break; 
			else if(c2=='i' && c3=='m' && c4=='g')
			{//想要的
				printf("<img ") ;
				while(1){
					scanf("%c",&c1);
					if(c1 == '>')
						{printf(">\n");break;
						}
					else
						printf("%c",c1);
				}			
			}
			else{ ////// </div> <div>
				while(1)
				{
					scanf("%c",&c1);
					if(c1== '>')
						break;
				}
			}
		}		
	}	
	return 0;
}

  整理成<img src=" "> 的情形。接下來就簡單了,貼上到Excel裡,資料分列,就得出來 純的 圖片網頁連線,沒錯接下來就是利用 Python urllib 及 cv2 來顯示儲存圖片。

其實 找到網頁原始碼裡的 <img 時考慮直接 新建 html 沾到 <body >裡顯示,但出不來,只有3張,不知為何。

import numpy as np
import urllib.request
import xlrd
import cv2
wb = xlrd.open_workbook("tp.xlsx")
biao = wb.sheet_by_name("Sheet1")
for i in range(biao.nrows ):
    lj = biao.row_values(i)[0]
    resp = urllib.request.urlopen(lj)
    image = np.asarray(bytearray(resp.read()),dtype="uint8")
    image =cv2.imdecode(image,cv2.IMREAD_COLOR)
 #   cv2.imshow("Image",image)
    mz = str(i) + ".jpg"
    cv2.imwrite(mz,image)
    cv2.waitKey(0)

  一個迴圈,用個 xlrd 然後 imwrite ,儲存了 這些圖片,連線一共有一百多條,但圖片只出來了九十幾張,

不管了 不求不求甚解。費時 一中午。自我感覺良好,謝謝!獻醜