白本羽 发表于 2021-5-20 13:50:36

爬虫中遇到的问题

本帖最后由 白本羽 于 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文件前面并没有声明任何相同的变量名,当我切换窗口时,换回来有可以用了,然后又不能用了......

suchocolate 发表于 2021-5-20 20:02:56

把全代码发出来,格式整齐一点,报错可以写在代码块的外面。

YunGuo 发表于 2021-5-20 20:52:12

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)

白本羽 发表于 2021-5-20 22:26:40

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

白本羽 发表于 2021-5-20 22:29:32

YunGuo 发表于 2021-5-20 20:52


用a和用url_有什么区别吗...为什么用a或者其它变量名就会出现警告,并使得for语句无效

白本羽 发表于 2021-5-20 22:33:03

本帖最后由 白本羽 于 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

suchocolate 发表于 2021-5-20 22:36:43

白本羽 发表于 2021-5-20 22:33
没有报错!!!只是for语句不起作用,相当于注释掉了,存在但不执行了(或者其它什么解释),但如果在for语句里 ...

令人迷惑的缩进

白本羽 发表于 2021-5-20 22:39:45

suchocolate 发表于 2021-5-20 22:36
令人迷惑的缩进

这个缩进没问题,可能发上来的时候我是用空格按的,没法用tab键,

白本羽 发表于 2021-5-20 22:40:46

白本羽 发表于 2021-5-20 22:39
这个缩进没问题,可能发上来的时候我是用空格按的,没法用tab键,

另一个具体代码回复还在审核中,,,不知道为啥{:5_104:},是我太像机器人了.....

suchocolate 发表于 2021-5-20 22:44:44

白本羽 发表于 2021-5-20 22:39
这个缩进没问题,可能发上来的时候我是用空格按的,没法用tab键,


没有报错,你的代码是不是混入了别的字符什么的。

白本羽 发表于 2021-5-20 22:48:02

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中黄色警告的具体描述,我自己去看具体怎么回事的...我粘贴了原文

白本羽 发表于 2021-5-20 22:50:45

suchocolate 发表于 2021-5-20 22:44
没有报错,你的代码是不是混入了别的字符什么的。

for a in part_url:
a = "https://pic.netbian.com" + a
print(part_url)

我只是想加个网页前缀啊{:5_99:},我打印出来的是未加前缀的网址...相当于for语句没用了,

兢兢 发表于 2021-5-21 22:58:30

headers 缩进问题
页: [1]
查看完整版本: 爬虫中遇到的问题