鱼C论坛

 找回密码
 立即注册
楼主: wongyusing

[作品展示] requests和node.js爬取煎蛋网

[复制链接]
发表于 2018-12-4 14:55:54 | 显示全部楼层
不错哦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-4 15:31:31 | 显示全部楼层
很厉害,想知道怎么写的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-5 01:37:54 | 显示全部楼层
前来学习写爬虫代码,哈哈哈1024
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-6 09:04:19 | 显示全部楼层
优秀,优秀,我也要无聊写爬虫
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 17:29:49 | 显示全部楼层
受不了了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-7 19:20:07 | 显示全部楼层
666
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-7 22:04:07 | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-8 18:32:28 | 显示全部楼层
学习学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-8 21:40:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-9 18:11:05 | 显示全部楼层
d
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-9 21:32:26 | 显示全部楼层
Shafa
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-9 23:13:44 | 显示全部楼层
向楼主学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-10 11:25:16 From FishC Mobile | 显示全部楼层
学习
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-11 10:58:41 | 显示全部楼层
wongyusing 发表于 2018-11-21 23:22
自顶一下,审核了5个小时。
排名太后了。

楼主,请教一下,python3,已安装node.js,windows环境下运行,这样报错:

  1. >>>>>>>>>>>>>>>>>>>>>>当前第1页
  2. Traceback (most recent call last):
  3.   File "D:/jiandan/jiandan/jandan.py", line 67, in <module>
  4.     main()
  5.   File "D:/jiandan/jiandan/jandan.py", line 65, in main
  6.     get_img()
  7.   File "D:/jiandan/jiandan/jandan.py", line 45, in get_img
  8.     f = open(path, 'wt')
  9. OSError: [Errno 22] Invalid argument: 'download_img/2018-12-11_10:51:43.'

  10. Process finished with exit code 1
复制代码


源代码未更改,报错的那几行代码是这样的:

  1.     try:
  2.         os.mkdir(f'download_img')
  3.     except Exception as e:
  4.         pass
  5.     path = f'download_img/{file_time}{suffix}'
  6.     f = open(path, 'wb')
  7.     f.write(response.content)
  8.     f.close()
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-11 11:08:38 | 显示全部楼层
AtticusWang 发表于 2018-12-11 10:58
楼主,请教一下,python3,已安装node.js,windows环境下运行,这样报错:

好像是因为没有后缀名,jpg和gif
一会我测试一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-11 12:26:17 | 显示全部楼层
wongyusing 发表于 2018-12-11 11:08
好像是因为没有后缀名,jpg和gif
一会我测试一下

嗯嗯,好的。

我在后面加个jpg,即:

  1. path = f'download_img/{file_time}{suffix}jpg'
复制代码


报错就成了:

  1. OSError: [Errno 22] Invalid argument: 'download_img/2018-12-11_12:24:46.jpg'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-11 13:21:46 | 显示全部楼层
AtticusWang 发表于 2018-12-11 12:26
嗯嗯,好的。

我在后面加个jpg,即:

看一下第一页哪里,windows需要稍微修改一下保存的路径

需要改成绝对路径,就你文件的绝对路径
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-11 13:55:21 | 显示全部楼层
wongyusing 发表于 2018-12-11 13:21
看一下第一页哪里,windows需要稍微修改一下保存的路径

需要改成绝对路径,就你文件的绝对路径

抱歉,我看了两三遍代码,不知道改哪里。比如我想保存到这个绝对路径,“D:\jiandan”,我应该将下面代码的哪一行修改成什么样呢?

  1. import requests
  2. import os
  3. import time
  4. from bs4 import BeautifulSoup as bs

  5. # 打开网页函数
  6. def get_response(url):
  7.     headers = {
  8.         'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36"}
  9.     response = requests.get(url, headers) # 加上浏览器头,以防被禁
  10.     response.encoding = 'utf-8'      # 指定编码格式
  11.     return response

  12. # 写一个js代码
  13. def writeFile(content):
  14.     with open('js/cest.js','w',encoding='utf-8')as txt_file:
  15.         txt_file.write("var JianDan = require('./main');\n")
  16.         txt_file.write(f'var e = "{content}";\n')
  17.         txt_file.write('hello = new JianDan(e);\n')
  18.         txt_file.close
  19. # 获取并下载图片
  20. def get_img():
  21.     # 运行js代码
  22.     url = 'http:' + os.popen(cmd="node js/cest.js").read()[:-1]
  23.     headers = {
  24.     'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
  25.     'Accept-Encoding': 'gzip, deflate',
  26.     'Accept-Language': 'zh-CN,zh;q=0.9',
  27.     'Cache-Control': 'no-cache',
  28.     'Connection': 'keep-alive',
  29.     'Pragma': 'no-cache',
  30.     'Upgrade-Insecure-Requests': '1',
  31.     'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
  32.         }
  33.     response = requests.get(url=url,headers=headers)
  34.     suffix = url[-4]
  35.     file_time = time.strftime("%Y-%m-%d_%H:%M:%S", time.localtime())#以时间命名文件,使文件不重名,方便保存下载
  36.     try:
  37.         os.mkdir(f'download_img')
  38.     except Exception as e:
  39.         pass

  40.     path = f'download_img/{file_time}{suffix}'
  41.     f = open(path, 'wb')
  42.     f.write(response.content)
  43.     f.close()

  44. def main():
  45.     url = 'http://jandan.net/ooxx'
  46.     response = get_response(url)
  47.     soup = bs(response.text,'lxml')
  48.     # 获取最大页码数
  49.     max_pages = int(soup.select('.cp-pagenavi .current-comment-page')[0].text.replace('[','').replace(']',''))+1
  50.     for i in range(1,max_pages):
  51.         url = f'http://jandan.net/ooxx/page-{i}'
  52.         response = get_response(url)
  53.         soup = bs(response.text,'lxml')
  54.         # 获取密文
  55.         print(f'>>>>>>>>>>>>>>>>>>>>>>当前第{i}页')
  56.         for i in soup.select('.commentlist .img-hash'):
  57.             # 写js代码
  58.             writeFile(i.text)
  59.             # 获取真实链接
  60.             get_img()
  61. if __name__ == '__main__':
  62.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-11 14:00:03 | 显示全部楼层
AtticusWang 发表于 2018-12-11 13:55
抱歉,我看了两三遍代码,不知道改哪里。比如我想保存到这个绝对路径,“D:\jiandan”,我应该 ...


改36行的索引

绝对路径是(改43行)
  1. path = f'D:\jiandan\download_img\{file_time}{suffix}'
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-11 14:18:44 | 显示全部楼层
wongyusing 发表于 2018-12-11 14:00
改36行的索引

绝对路径是(改43行)

36行的索引是这样,由于我不知道具体含义,就修改了一下数字,原本是这样:

  1. suffix = url[-4]
复制代码


把-4改成-5后,后缀"."就变成了”r“

然后我又改成这样:

  1. suffix = url[-4'jpg']
复制代码


也显示有问题,jpg下面有红色波浪线;所以不清楚怎么改了……

还有就是绝对路径43行,我怕出错,就把左斜杠换成了右斜杠,成了这样:

  1. path = f'D:/jiandan/download_img/{file_time}{suffix}'
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 16:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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