你的鱼 发表于 2021-7-27 00:09:45

ooxx那里我换了一个网站但却出现了意想不到的结果

import urllib.request
import os

def url_open(url):
    req = urllib.request.Request(url)
    req.add_header('user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36')
    response = urllib.request.urlopen(req)
    html = response.read()

    print(url)
    return html

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

    a = html.find('current-comment-page') + 23
    b = html.find(']', a)

    return html

   
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.http:(html)
      else:
            b = a + 9
            
      a = html.find('img src=', b)
    for each in img_addrs:
      print(each)
      
def save_imgs(folder,img_addrs):
    pass

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

    url = 'https://www.zxs51.com/mnxz/'
   
    page_name = int(get_page(url))

    for i in range(pages):
      page_num = -i
      page_url = url + 'page-' + str(page_num) + '#comment'
      img_addrs = find_imgs(page_url)
      save_imgs(folder,img_addrs)

if __name__ =='__main__':
    download_mm()

运行结果
========== RESTART: /Users/nidelu/Desktop/python/给爷爬/爬虫4/妹子图.py/妹子图.py =========
https://www.zxs51.com/mnxz/
Traceback (most recent call last):
File "/Users/nidelu/Desktop/python/给爷爬/爬虫4/妹子图.py/妹子图.py", line 57, in <module>
    download_mm()
File "/Users/nidelu/Desktop/python/给爷爬/爬虫4/妹子图.py/妹子图.py", line 48, in download_mm
    page_name = int(get_page(url))
ValueError: invalid literal for int() with base 10: ' lang="zh-CN">\r\n<head>\r\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r\n<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable

请问这是怎么回事

wp231957 发表于 2021-7-27 10:15:32

网站还可以随便换吗,对于不同网站,爬虫代码都是不相同的

小菜鸟FLY 发表于 2021-8-3 19:58:04

不同的网站规则和规律不同,最近我也学到这,现在的网站源代码和之前都不一样了,得学新知识才能比较方便地爬了。

小菜鸟FLY 发表于 2021-8-3 19:59:20

挖槽,哥们你这网站。。。

川流801 发表于 2021-8-3 22:20:16

注意保护视力哈

白two 发表于 2021-8-5 18:40:19

本帖最后由 白two 于 2021-8-5 18:51 编辑

网站都是静态的,直接看源码
1页面分析:
1.1翻页:
https://www.zxs51.com/mnxz/ #第1页
https://www.zxs51.com/mnxz/page/2/ #第二页
https://www.zxs51.com/mnxz/page/3/ #第三页
结论:url = https://www.zxs51.com/mnxz/page/ + page + /


1.2定位每一页图片集的网址:
<a class="item-img" title="木花琳琳是勇者:洗澡" href="https://www.zxs51.com/171.html" rel="nofollow"> #第一个
<a class="item-img" title="浴室里的小 萝 莉" href="https://www.zxs51.com/170.html" rel="nofollow"> #第二个
结论:<a class="item-img" title="图片集名称" href="我们需要的网址" rel="nofollow">
每一个图片集的url就找到上面的字符串匹配里面的网址即可


1.3定位每一张图片的网址:
<img src="https://www.zxs51.com/wp-content/uploads/2021/05/20210501193450524.jpg"title="木花琳琳是勇者:洗澡"alt="木花琳琳是勇者:洗澡 美女写真"/> #第一张
<img src="https://www.zxs51.com/wp-content/uploads/2021/05/20210501193450567.jpg"title="木花琳琳是勇者:洗澡"alt="木花琳琳是勇者:洗澡 美女写真"/> #第二张
结论:<img src="我们需要的图片网址"title="每个图片集的名字"alt="每个图片集的名字 美女写真"/>
匹配到上面字符串里面的图片网址即可

所以你需要改的地方:
1.每一页网址的地址
2.要加一个每一页里面每个图片集的地址(可以存列表里面循环遍历)
3.每张图片的地址(可以存列表里面循环遍历)

哎,你这网站有点东西,注意点身体
可以去学一下xpath,这样页面分析会稍微简单一点
你先试着自己改一改代码,这样分析完应该不难了
页: [1]
查看完整版本: ooxx那里我换了一个网站但却出现了意想不到的结果