殁涩吧 关注:21贴子:3,533

Python 爬取多玩图库

取消只看楼主收藏回复

发现跟着视频做完成功了,但是完全不记得自己做了什么,遂开贴总结


IP属地:福建1楼2017-10-29 20:26回复
    首先将需要爬取的网页链接保存到变量


    IP属地:福建3楼2017-10-29 20:34
    回复
      喵喵喵???我楼呢???


      IP属地:福建4楼2017-10-29 20:34
      回复
        好吧无所谓了,只是一张网页的截图...


        IP属地:福建5楼2017-10-29 20:36
        回复
          接着为了模拟浏览器访问页面来获取页面内容
          使用requests模块里的get方法


          IP属地:福建6楼2017-10-29 20:39
          收起回复
            接着使用print(r.content),尝试打印出所获取的网页源代码

            成功


            IP属地:福建7楼2017-10-29 20:43
            收起回复
              print(r.text)获得更美观的格式,

              但直接以文本模式显示可能会出现字符编码不匹配而产生乱码


              IP属地:福建8楼2017-10-29 20:52
              收起回复
                乱码的问题并不难解决,在定义r之后r.coding='utf-8' 设定网页字符编码就能看到情切的汉字了


                IP属地:福建9楼2017-10-29 20:57
                收起回复
                  回去研究网页,Ctrl+U查看网页源代码,可以发现网页中对应的组图信息都在源代码里了


                  IP属地:福建10楼2017-10-29 21:09
                  回复
                    data = []
                    创建一个储存标签号的空列表
                    从上一楼可以发现每个标签都是以<li xxxx开头,</li>结尾,于是可以利用正则表达式匹配出所有符合条件的字符串
                    然后打印出其中第一个查看是否获取成功.
                    使用正则表达式re模块需要import re


                    IP属地:福建11楼2017-10-29 21:21
                    收起回复
                      上图其实没能表现清楚,但每个<lixxxxx...</li>的信息都被以[1, 2, 3, 4]这样的格式存在lis列表里了.
                      然后for循环单独取出lis内每一个内容再使用正则表达式进行提取

                      打印之后发现每个数字都有重复,因为之前每个<lixxxxx...</li>的信息里,套路url都出现了两次

                      只需要一个于是加上[0],获得每次获取的列表内第一个获得的值


                      IP属地:福建12楼2017-10-29 21:43
                      收起回复
                        之后随便进入一个套图链接,Ctrl+U发现并没有图片链接,说明图片是动态加载的.(并不知道动态加载是什么)
                        F12进入开发者模式,找到图片所在行.

                        需要的是.jpg之前的图片编号


                        IP属地:福建13楼2017-10-29 21:59
                        回复
                          恩获取到的东西和一个月前的不一样呢...之前可没有这样乱七八糟...


                          IP属地:福建14楼2017-10-29 22:05
                          收起回复
                            恩反正需要的也只是这个网址,这个网址内存着所有套图信息呢...


                            IP属地:福建15楼2017-10-29 22:12
                            收起回复
                              之后继续用requests.get()获取之前得到url内的信息
                              之后print(r2.text)看一下获取到的信息

                              恩完全不懂呢,但是老湿说是json那就json格式吧


                              IP属地:福建16楼2017-10-29 22:16
                              回复