文章目录
前言百度文库道客巴巴豆丁网前言
在从两个小网站爬取了书籍之后,我想研究一下大网站的网页,便把自己分析出来的一点结果分享出来,希望能帮助大家,也请大佬指出其中不足。
百度文库
任意打开一篇文档F12调出控制台
试着检查一下图片元素,可以发现一个url
url很长,包含了很多参数,我单独分析了一下参数的内容,没能找到页面之间的循环规律,如果有大佬发现了还望点拨点拨。
把链接拿出来直接从浏览器访问看看,成功获得了图片资源。
手动翻页,继续检查图片,同样可以获得一个新的url
这样以来就可以用selenium进行翻页,获取图片资源了,而元素定位可以结合之前图片中标注的#pageNo-1的这种id选择器,循环起来获取图片资源。
道客巴巴
这个需要在IE浏览器下操作,任意打开一个文档,调出控制台;依旧是找图片的连接;在这里图片链接被拆开放在object的data与param的value当中。
将刚才的链接拼好在页面中打开,虽然看起来是图片,实际上是flash,chrome直接访问会下载一个swf而非加载图片。
由于selenium调用ie并不那么常见,而且我采取的是截图来获取flash的图片,这里简单演示一下代码,还没有完善翻页获取多张图片。
from bs4 import BeautifulSoupfrom selenium import webdriverbrowser = webdriver.Ie()browser.get('/p-2055371015972.html')html = browser.page_sourcesoup = BeautifulSoup(html, 'lxml')# 获取object标签list = soup.find_all('object')for item in list:# 获取object下的参数,索引为3的是需要的链接值childs = soup.find('object').childreni = 0for child in childs:if i == 3:value = child['value']url = item['data']+valueprint(url)i += 1browser.get(url)browser.get_screenshot_as_file('F:/1.png')
结果展示
虽然比例有点失调,不过之后合成pdf的时候可以根据画布的尺寸进行调整。
豆丁网
这个也需要在ie下进行操作,在chrome、Firefox等浏览器内核下加载的是canvas的画布,双内核的360浏览在此采用的ie的加载机制。
后续的操作与道客巴巴中的相同,不再演示。
如果觉得《python爬虫分析百度文库 道客巴巴 豆丁网获取图片链接》对你有帮助,请点赞、收藏,并留下你的观点哦!