pythonleelee 发表于 2022-6-22 16:38:54

求助网络爬虫

大佬们求助,照着小甲鱼的教程走的为啥跑不出来啊

import urllib.request
import os

def url_open(url):
    req = urllib.request.Request(url)
    req.add_header('user-agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36')
    response = urllib.request.urlopen(url)
    html = response.read()

    return html

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

    a = html.find('current_comment_page') + 10
    b = html.find(']',a)

    return html


def find_img(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)
         else:
             b = a + 9

         a = html.find('img src=',b)

    return img_addrs


def save_imgs(floder, img_addrs):
    for each in img_addrs:
      filename = each.split('/')[-1]
      with open(filename,'wb') as f:
            img = url_open(each)
            f.write(img)

def download_mm(folder = 'jiandan', pages = 10):
    os.mkdir(folder)
    os.chdir(folder)

    url = 'https://mil.ifeng.com/c/'
    page_num = int(get_page(url))

    for i in range(pages):
      page_num -= i
      page_url = url +'8GxxlRAQip' + str(page_num) +'#p=1'
      img_addrs = find_imgs(page_url)
      save_imgs(folder,img_addrs)

if __name__ == '__main__':
    download_mm()

wp231957 发表于 2022-6-22 20:02:06

网页有可能是变化的
需要代码也跟着变化

白two 发表于 2022-6-22 20:33:28

爬虫的时效性是最强的, 网站的反爬技术一直在更新, 爬虫工程师的反反爬技术也在更新, 所以可能一段代码前一天还能用, 第二天就用不了了, 所以爬虫的教程建议看最新的
你可以去b站上搜最新的爬虫教程, 也可以在论坛搜一下有没有鱼油最近发布的爬虫作品

白two 发表于 2022-6-22 20:34:37

建议就是爬虫看教程不要看这种远古版本的了, 那时候小甲鱼写的爬淘宝的代码轻轻松松, 现在反爬难得一笔

pythonleelee 发表于 2022-6-23 09:31:54

wp231957 发表于 2022-6-22 20:02
网页有可能是变化的
需要代码也跟着变化

好的谢谢

pythonleelee 发表于 2022-6-23 09:32:24

白two 发表于 2022-6-22 20:34
建议就是爬虫看教程不要看这种远古版本的了, 那时候小甲鱼写的爬淘宝的代码轻轻松松, 现在反爬难得一笔

好的谢谢
页: [1]
查看完整版本: 求助网络爬虫