刚接触Python,看了一点点《Python网络数据采集》。开始主要是关于BeautifulSoup4的介绍。于是用下现在的知识,写了一个爬所有Google的Doodles图片的脚本,初学者,各位大神多多关照。顺便把爬到的东西也贴出来吧。这东西在自己VPS上爬的,国内需梯子,而且我发现在自己的win上爬的超慢,不知道是不是完全是网络的问题。
直接贴代码:(BeautifulSoup4需要自己pip,测试版本为py3.5.1)
from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
import datetime
import random
def getLinks(doodlesTitle):
html=urlopen("https://www.google.com"+doodlesTitle)
bsObj=BeautifulSoup(html)
title=bsObj.find("h2").get_text()
picUrl=bsObj.find("img",{"id":"hplogo-img"}).attrs['src']
PicDate=bsObj.find("div",{"class":"time"}).get_text()
downloadPic('https:'+picUrl)
return bsObj.find("a",{"title":"Prev"}).attrs['href']
def downloadPic(picUrl):
listChar=picUrl.split('/')
picName=listChar[-1]#沿用网站上的文件名
pic=urlopen(picUrl)
f=open(picName,"wb")
f.write(pic.read())
f.close()
count=1000 #其实目前为止只有650
links=getLinks("/doodles/100th-anniversary-of-the-russian-nature-reserves") #2017/1/12
while count>0:
links=getLinks(links)
count=count-1;
代码不堪入目,请见谅。