0574b69b9d3d65e5.jpg

a0507658

GF  2021-03-03 14:42
(为什么显示的是我的数字ID _(:з」∠)_)

问下python大佬之前论坛里那个爬虫py文件的使用方法

原贴

压缩包southplus下载下来应该是5个html和一个daily_updates.py文件
小弟这里有点问题,希望已经起飞的大佬给点指示

1 我电脑上装了anaconda和python官网的python3.7, 官网的python3.7由于已经添加到系统的环境变量里,所以cmd python是可以看到python的版本号的。 但是原贴中keoki大佬写的爬虫中,有些依赖包在anaconda自带的pycharm中查看是没有加载出来的,大佬的依赖有:
from lxml import etree
import re
import asyncio
import aiohttp
import jinja2
import shelve
from pprint import pprint
import sys
import os
于是我在pycharm中手动添加了阿里镜像的etree,

我理解 anaconda的python和我自己下载的python应该用的不是同一个lib,所以我在cmd里添加的官网python3.7如何使用到anaconda里面python的库里的依赖呢?还是说这俩其实实际上用的是同一个库?

2 大佬keoki原来的py文件中,353行中 if (sub_list := subs_dict.get(platform)):这里的代码报错,说:= 不是合法的判断语法而报错,这里我按照自己的理解手动改成了 if (sub_list == subs_dict.get(platform)): 然后提示name 'sub_list' is not defined
我在原帖里问了keoki大佬,大佬说要传参,大佬原话是:
“python daily_updates.py cunhua
你没有传命令行参数。

cunhua 或者 2048 或者其他平台,作为第一个参数在运行脚本的时候传入,其他不用动。”

于是我在cmd里手动切换到了 southplus目录下 执行了python daily_updates.py cunhua
然后是同样的问题NameError: name 'sub_list' is not defined

所以这里这个sub_list没有定义是依赖的问题(cmd里的python用不到anaconda里下载的包?),还是我执行命令的格式不对?


写的比较啰嗦,大佬见谅,如果有已经成功运行keoki大佬py文件的大佬,麻烦指点下,不胜感激

1318167.png

酵母菌

B1F  2021-03-03 15:23
(电报小号 https://shop.telegramtraffic.uk/buy/3)
anaconda适合做数据分析又懒得折腾的人。包很全,省事。不过,conda系统巨难用,直观上比venv差远了,不建议新人用这个。当然,一上来看的书就是用jupyter notebook的,算我没说。

楼上说的没错,:= 是赋值并返回,本质是个inline函数。哪来的勇气直接换成 == 的啊……

1318167.png

酵母菌

B2F  2021-03-03 17:20
(电报小号 https://shop.telegramtraffic.uk/buy/3)
你把你修改过的东西都删了。重新弄人家的原版。

刚看到那个帖子了。传参不明白简直无解……看上面的error,你修改了sys.arg相关的判断了吧?

lxml也好,etree也好,作者都是用的xpath,无关紧要。

给你个建议吧:

1. 请多Google再问。
2. 删掉的anaconda,用最新版的python3.8
3. 找个地方创建venv
4. 了解下什么叫命令行传参
5. 不要用pytcharm,很强悍的工具,但是实际上你没弄清楚,pycharm下跑这个,需要configure里面配置下parameter(各种ide下,配置运行参数都有类似步骤)
6. 老老实实用cmd,activate下venv
7. 照着人家教程,直接      python script parameters

敢改代码是好事,但是起码弄明白原意再改。随意改代码又懒得去了解原理不如不学呢。

https://www.runoob.com/python/python-command-line-arguments.html