鱼C论坛

 找回密码
 立即注册
查看: 3865|回复: 7

[已解决]为什么审查元素和我获取到的代码不一样?

[复制链接]
发表于 2017-7-26 12:46:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
双引号变单引号了,我是要去匹配哪个呢?

(我想获取下一页前面的地址’/g/23424/2.html‘,但是一直获取不到。)
#    p = re.findall(r'<a class="a1" href="\W\w\W\d\d\d\d\d\W\d\.html">下一页',html)
      print(p)
最佳答案
2017-8-1 19:32:21
本帖最后由 gopythoner 于 2017-8-1 19:41 编辑
我了要认真了 发表于 2017-8-1 09:20
import urllib.request
import os
import re

  1. p = re.findall(r"class='a1' href='(/g/\d+?/\d+?\.html)' >下一页</a></div>",html)[0]
复制代码


这个可以

打印出来时

打印出来时

审查元素时

审查元素时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-7-26 13:36:45 | 显示全部楼层
你在这里问的时间还不如自己把两种方法都试一下,看看哪种能匹配到你要的信息不就行了?
本来很多东西就需要自己测试的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-26 13:50:38 | 显示全部楼层
gopythoner 发表于 2017-7-26 13:36
你在这里问的时间还不如自己把两种方法都试一下,看看哪种能匹配到你要的信息不就行了?
本来很多东西就需 ...

试了都不行,返回一个[ ]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-26 22:21:17 | 显示全部楼层
我了要认真了 发表于 2017-7-26 13:50
试了都不行,返回一个[ ]


别写那么多数字的匹配
改成这样看行不
  1. p = re.findall(r'<a class="a1" href="(/g/.*?\.html)">下一页',html)
复制代码

不行的话把那个网页发出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-1 09:20:37 | 显示全部楼层
gopythoner 发表于 2017-7-26 22:21
别写那么多数字的匹配
改成这样看行不
不行的话把那个网页发出来

import urllib.request
import os
import re
import random

def url_open(url):
    req = urllib.request.Request(url)
    req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36')
    req.add_header('Referer','https://www.nvshens.com/gallery/')

    proxies = ['61.143.228.162:3128','180.168.179.193:8080','119.29.7.113:80','123.7.38.31:9999']
    proxy = random.choice(proxies)
    proxy_support = urllib.request.ProxyHandler({'http':proxy})
    opener = urllib.request.build_opener(proxy_support)
    urllib.request.install_opener(opener)

    response = urllib.request.urlopen(url)
    html = response.read()
    return html

def get_page(url):

    html = url_open(url).decode('utf-8')

    a = html.find('galleryli_link') + 25
    b = html.find('/',a)

    return html[a:b]

def find_imgs(url):
    html = url_open(url).decode('utf-8')
    img_addrs = []
   
    a = html.find('img src=')

    while a != -1:
        b = html.find('.jpg',a,a+255)
        if b != -1:
            img_addrs.append(html[a+9:b+4])
        else:
            b = a + 9

        a = html.find('img src=',b)
    #return img_addrs    #后来我试着只下载第一页,但是下的图片都是防盗链的东西。补全所有的headers也没用
        
    #翻页(这里需要翻页,但就是找不到)
   
    p = re.findall(r'<a class="a1" href="(/g/.*?\.html)">下一页',html)
    print(p)
   
        
def save_imgs(folders,img_addrs):
    '''for each in img_addrs:
        filename = each.split('/')[-1]
        with open(filename,'wb') as f:
            img = url_open(each)
            f.write(img)
    '''
    pass
def download_mm(folder='picture',pages=1):
    os.mkdir(folder)
    os.chdir(folder)

    url = 'https://www.nvshens.com'
    page_num = int(get_page(url))

    for each in range(pages):
        page_num -= each
        page_url = url + '/g/' + str(page_num) + '/'
        img_addrs = find_imgs(page_url)
        save_imgs(folder,img_addrs)

if __name__=='__main__':
    download_mm()
按着小甲鱼的一路敲敲敲,现在想试试换个网站试试   但是不行了。
https://www.nvshens.com/g/23492/       <-网址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-1 19:32:21 | 显示全部楼层    本楼为最佳答案   
本帖最后由 gopythoner 于 2017-8-1 19:41 编辑
我了要认真了 发表于 2017-8-1 09:20
import urllib.request
import os
import re

  1. p = re.findall(r"class='a1' href='(/g/\d+?/\d+?\.html)' >下一页</a></div>",html)[0]
复制代码


这个可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-20 19:22:49 | 显示全部楼层

非常感谢!!
(由于我不能解决防盗链的问题,所以我就把这个代码搁置了。。。。)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-30 10:16:22 | 显示全部楼层
我了要认真了 发表于 2017-9-20 19:22
非常感谢!!
(由于我不能解决防盗链的问题,所以我就把这个代码搁置了。。。。)

防盗链好像是需要设置请求头的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 12:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表