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

Python 爬取多玩图库

取消只看楼主收藏回复

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


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


    回复
    3楼2017-10-29 20:34
      喵喵喵???我楼呢???


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


        回复
        5楼2017-10-29 20:36
          接着为了模拟浏览器访问页面来获取页面内容


          使用requests模块里的get方法




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


            成功


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


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


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


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


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


                    使用正则表达式re模块需要import re


                    收起回复
                    11楼2017-10-29 21:21
                      上图其实没能表现清楚,但每个<lixxxxx...</li>的信息都被以[1, 2, 3, 4]这样的格式存在lis列表里了.


                      然后for循环单独取出lis内每一个内容再使用正则表达式进行提取


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


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


                      收起回复
                      12楼2017-10-29 21:43
                        之后随便进入一个套图链接,Ctrl+U发现并没有图片链接,说明图片是动态加载的.(并不知道动态加载是什么)


                        F12进入开发者模式,找到图片所在行.


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


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


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


                            收起回复
                            15楼2017-10-29 22:12
                              之后继续用requests.get()获取之前得到url内的信息


                              之后print(r2.text)看一下获取到的信息


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


                              回复
                              16楼2017-10-29 22:16