python爬虫分析百度文库、道客巴巴、豆丁网获取图片链接

前言

在从两个小网站爬取了书籍之后,我想研究一下大网站的网页,便把自己分析出来的一点结果分享出来,希望能帮助大家,也请大佬指出其中不足。

百度文库

任意打开一篇文档F12调出控制台
在这里插入图片描述
试着检查一下图片元素,可以发现一个url
在这里插入图片描述
url很长,包含了很多参数,我单独分析了一下参数的内容,没能找到页面之间的循环规律,如果有大佬发现了还望点拨点拨。
在这里插入图片描述
把链接拿出来直接从浏览器访问看看,成功获得了图片资源。
在这里插入图片描述
手动翻页,继续检查图片,同样可以获得一个新的url
在这里插入图片描述
这样以来就可以用selenium进行翻页,获取图片资源了,而元素定位可以结合之前图片中标注的#pageNo-1的这种id选择器,循环起来获取图片资源。

道客巴巴

这个需要在IE浏览器下操作,任意打开一个文档,调出控制台;依旧是找图片的连接;在这里图片链接被拆开放在object的data与param的value当中。
在这里插入图片描述
将刚才的链接拼好在页面中打开,虽然看起来是图片,实际上是flash,chrome直接访问会下载一个swf而非加载图片。
在这里插入图片描述
由于selenium调用ie并不那么常见,而且我采取的是截图来获取flash的图片,这里简单演示一下代码,还没有完善翻页获取多张图片。

from bs4 import BeautifulSoup
from selenium import webdriver
browser = webdriver.Ie()
browser.get('http://www.doc88.com/p-2055371015972.html')
html = browser.page_source
soup = BeautifulSoup(html, 'lxml')
# 获取object标签
list = soup.find_all('object')
for item in list:
	# 获取object下的参数,索引为3的是需要的链接值
    childs = soup.find('object').children
    i = 0
    for child in childs:
        if i == 3:
            value = child['value']
            url = item['data']+value
            print(url)
        i += 1
    browser.get(url)
    browser.get_screenshot_as_file('F:/1.png')

结果展示
在这里插入图片描述
虽然比例有点失调,不过之后合成pdf的时候可以根据画布的尺寸进行调整。
在这里插入图片描述

豆丁网

这个也需要在ie下进行操作,在chrome、Firefox等浏览器内核下加载的是canvas的画布,双内核的360浏览在此采用的ie的加载机制。
在这里插入图片描述
后续的操作与道客巴巴中的相同,不再演示。

猜你喜欢

转载自blog.csdn.net/weixin_44112790/article/details/87871496