爬虫中遇到的问题
本帖最后由 白本羽 于 2021-5-20 13:55 编辑import requests
from lxml import etree
import os
if __name__ == "__main__":
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.56 "
}
url = "https://pic.netbian.com/4kmeinv/"
response = requests.get(url = url, headers = headers).text
# print(response)
tree = etree.HTML(response)
part_url = tree.xpath('//ul[@class="clearfix"]//img/@src')#
for a in part_url: # 这里的a无论取什么变量名都会提示前面已经定义,并且这段for语句会没作用,但不报错已重新声明上文定义的无用法的 'a'
检查信息: This inspection detects unconditional redeclarations of names without being used in between, like this:
def x(): pass
x = 2
It applies to function and class declarations, and top-level assignments.
a: Any
a = "https://pic.netbian.com" + a
用的idle是pycharm,但是我在当前py文件前面并没有声明任何相同的变量名,当我切换窗口时,换回来有可以用了,然后又不能用了...... 把全代码发出来,格式整齐一点,报错可以写在代码块的外面。 import requests
from lxml import etree
if __name__ == "__main__":
headers = {
"user-agent": "Mozilla/5.0"
}
url = "https://pic.netbian.com/4kmeinv/"
response = requests.get(url = url, headers = headers).text
tree = etree.HTML(response)
part_url = tree.xpath('//ul[@class="clearfix"]//img/@src')
for url_ in part_url:
url = 'https://pic.netbian.com' + url_
print(url) suchocolate 发表于 2021-5-20 20:02
把全代码发出来,格式整齐一点,报错可以写在代码块的外面。
import requests
from lxml import etree
import os
if __name__ == "__main__":
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/90.0.4430.93 Safari/537.36 Edg/90.0.818.56 "
}
url = "https://pic.netbian.com/4kmeinv/"
response = requests.get(url = url, headers = headers).text
# print(response)
tree = etree.HTML(response)
part_url = tree.xpath('//ul[@class="clearfix"]//img/@src')#
for a in part_url: # 这里的a无论取什么变量名都会提示前面已经定义,并且这段for语句会没作用,但不报错
a = "https://pic.netbian.com" + a
以上为全部代码...
然后idle中会有个警告
描述为:已重新声明上文定义的无用法的 'a'
检查信息: This inspection detects unconditional redeclarations of names without being used in between, like this:
def x(): pass
x = 2
It applies to function and class declarations, and top-level assignments.
a: Any YunGuo 发表于 2021-5-20 20:52
用a和用url_有什么区别吗...为什么用a或者其它变量名就会出现警告,并使得for语句无效 本帖最后由 白本羽 于 2021-5-20 22:34 编辑
suchocolate 发表于 2021-5-20 20:02
把全代码发出来,格式整齐一点,报错可以写在代码块的外面。
没有报错!!!只是for语句不起作用,相当于注释掉了,存在但不执行了(或者其它什么解释),但如果在for语句里面加print(each)就会报错
This inspection detects names that should resolve but don't 白本羽 发表于 2021-5-20 22:33
没有报错!!!只是for语句不起作用,相当于注释掉了,存在但不执行了(或者其它什么解释),但如果在for语句里 ...
令人迷惑的缩进 suchocolate 发表于 2021-5-20 22:36
令人迷惑的缩进
这个缩进没问题,可能发上来的时候我是用空格按的,没法用tab键, 白本羽 发表于 2021-5-20 22:39
这个缩进没问题,可能发上来的时候我是用空格按的,没法用tab键,
另一个具体代码回复还在审核中,,,不知道为啥{:5_104:},是我太像机器人了..... 白本羽 发表于 2021-5-20 22:39
这个缩进没问题,可能发上来的时候我是用空格按的,没法用tab键,
没有报错,你的代码是不是混入了别的字符什么的。 suchocolate 发表于 2021-5-20 22:44
没有报错,你的代码是不是混入了别的字符什么的。
已重新声明上文定义的无用法的 'a'
检查信息: This inspection detects unconditional redeclarations of names without being used in between, like this:
def x(): pass
x = 2
It applies to function and class declarations, and top-level assignments.
a: Any
这段不是程序报错,而是idle中黄色警告的具体描述,我自己去看具体怎么回事的...我粘贴了原文 suchocolate 发表于 2021-5-20 22:44
没有报错,你的代码是不是混入了别的字符什么的。
for a in part_url:
a = "https://pic.netbian.com" + a
print(part_url)
我只是想加个网页前缀啊{:5_99:},我打印出来的是未加前缀的网址...相当于for语句没用了, headers 缩进问题
页:
[1]