300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python爬虫分析百度文库 道客巴巴 豆丁网获取图片链接

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

时间:2019-12-12 07:00:19

相关推荐

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

文章目录

前言百度文库道客巴巴豆丁网

前言

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

百度文库

任意打开一篇文档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的加载机制。

后续的操作与道客巴巴中的相同,不再演示。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。