昨天入门了下爬虫
今天遇到了问题
我想爬这个图片网的图片
就是用 selenium 获取到了 url
但是得到的 driver.page_source 的值是一堆 javascript,没有之类的标签
而我想获得的是
里的内容
所以现在用 beautifulsoup 解析不出来
BeautifulSoup(driver.page_source, 'lxml').find_all('a', class_='cV68d')
应该怎么解决?貌似用 driver.get_element 之类的方法也能找出来标签内容,但我想把整个 driver.page_sourse 的内容解析出来,用 soup 来处理
1
zgcwkj 2019-04-02 15:27:31 +08:00 1
给个方法:(只在你说的这个网站有效)
1,打开这个网址( https://unsplash.com/),仔细观察网页源码的每张图片数据,可以发现每张图片都是以 A 标签,并且 A 标签都是( href="/photos/***") 2,在开发者工具切换到( Network )节点,回到网页,点击任意一张图片进行预览,再到开发者工具的( Network )选项卡,可以看到请求的数据有哪些,细心观察数据请求,会有一个是请求到( https://unsplash.com/napi/photos/***) 3,我们使用正则匹配( https://unsplash.com/)的网页源码,匹配到每张图片的( href="/photos/***")内容(***是图片的 ID ) 4,然后结合第二步的工作,然后通过 GET 请求这个地址( https://unsplash.com/napi/photos/****),会返回一个 JSON 数据,找到 urls.full 这个数据就是图片下载链接,可以直接把文件下载下来! 仅提供思路,不要转载,仅在 V2EX 发表 |
2
LZSZ 2019-04-02 15:46:49 +08:00
直接抓源码不行吗 <script>window.__INITIAL_STATE__ = { xxxxxxx }</script> 里面的 转换成 json 格式读就可以了
|
3
longchisihai 2019-04-02 15:47:05 +08:00
楼上的回复真是 stackoverflow 即视感
|
4
larendorrx 2019-04-02 15:52:21 +08:00
客户端渲染的页面就更好抓了, 它总要去请求数据的, 所以就去看请求的格式, 直接 request 就完事了, 当然要注意 Headers.
可能会有一些认证之类的 |
5
LZSZ 2019-04-02 15:55:31 +08:00
https://unsplash.com/developers 提供了 api 啊 好像是免费的 你看看
|
6
boatfu OP 谢谢大家的分析,凶手找到了,是因为时间太短,页面没有加载出来,driver 创建后,先用 time.sleep(10),就没问题啦
|
7
janstk 2019-04-02 21:21:39 +08:00
|
8
realkenshinji 2019-04-02 21:35:20 +08:00 via iPhone
人家明明都有 api 给你用了,哎....
|
9
gengfire 2019-04-03 09:01:23 +08:00
|