import requests from bs4 import BeautifulSoup res = requests.get\ ("http://pic.sogou.com/pics/recommend?category=%C3%C0%C5%AE&from=webvr#%E8%90%9D%E8%8E%89") soup = BeautifulSoup(res.text,'html.parser') print(soup.select('img'))
res变量:存储链接的网页所有内容
res.text :提取网页的文本内容
html.parser: 以一定的格式解析网页内容
soup.select( ):CSS选择器, 我们使用CSS选择器来寻找符合要求的数据。找到的数据,返回为list类型,寻找到的 是所有符合要求的数据
soup.select('img')// css里img标签里的信息
print soup.select('div')// 直接返回div标签所有的内容
运行结果:
[<img alt="搜狗图片" src="/news/images/tupian130x34_@1x.png" srcset="/news/images/tupian130x34_@2x.png 2x"/>, <img class="st-load" src="">
</img>]
结果没发现图片的URL。。。
检查网页元素,选 Network, XHR , 对应Name, 观察Headers 和 priview的信息 和规律:
import requests import urllib from bs4 import BeautifulSoup import json def getImgs(length,path): //爬取个数,下载到本地的路径
imgs = requests.get('http://pic.sogou.com/pics/channel/getAllRecomPicByTag.jsp?category=%E7%BE%8E%E5%A5%B3&tag=%E8%90%9D%E8%8E%89&start=15&len=15') jd = json.loads(imgs.text) jd = jd[ 'all_items'] imgs_url = [] for j in jd: imgs_url.append(j[ 'bthumbUrl']) m = 0 for img_url in imgs_url: print( str(m) + '.jpg ' + ' Downloading...') urllib.request.urlretrieve(img_url , path + str(m) + '.jpg') m = m + 1 print( 'Download complete!')getImgs( 20 , 'F:/yang/sougouImgs/')
运行结果:
虽然长度定为20,但是前面一个页面只有15张,所以只能下载15张
再返回到网页检查部分 发现 start 的规律 15, 30 , 45 ....
更改的待续。。