Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 刮擦警告后超过URL限制_Python_Scrapy_Xlsxwriter - Fatal编程技术网

Python 刮擦警告后超过URL限制

Python 刮擦警告后超过URL限制,python,scrapy,xlsxwriter,Python,Scrapy,Xlsxwriter,当scrapy spider完成后,程序使用openpyxlxlsxwriter将数据写入excel文件时,我得到了这个消息。然而,在警告中,它说xlsx.writer,我没有使用,这是一个问题的原因,因为一些数据没有写入,并且被跳过。 以下是代码的jist: import scrapy,csv,requests import re,json from openpyxl import Workbook import numpy as np import pandas as pd from jso

当scrapy spider完成后,程序使用
openpyxl
xlsxwriter
将数据写入excel文件时,我得到了这个消息。然而,在警告中,它说
xlsx.writer
,我没有使用,这是一个问题的原因,因为一些数据没有写入,并且被跳过。 以下是代码的jist:

import scrapy,csv,requests
import re,json
from openpyxl import Workbook
import numpy as np
import pandas as pd
from json.decoder import JSONDecodeError
from openpyxl.utils.dataframe import dataframe_to_rows
#spidercode 
df = pd.DataFrame(spider.list_of_items)
df.to_excel("{}.xlsx".format(file_name))

我想要的是对此进行修复,或者如果此警告发生在至少获取行的其余部分时,则可以不使用URL写入行。

您的URL(266个符号):
'https://www.target.com/p/nfl-indianapolis-colts-northwest-draft-full-queen-comforter-set/-/A-53033602?ref=tgt_soc_0000059195_pd&afid=pin_ao&cpng=DR_PSA_Sports&fndsrc=bcm&campaignid=626738629371&adgroupid=2680061765888&product_partition_id=2954942580838&device=m&pp=1“

由两部分组成:

  • 实际url(101个符号):
  • 它是查询参数(在url中的
    符号之后):

    ref=tgt_soc_uu0000059195_upd
    afid=pin_ao&cpng=DR_PSA_Sports
    fndsrc=车身控制模块
    活动ID=626738629371
    adgroupid=2680061765888
    产品分区id=2954942580838
    设备=m
    pp=1
如果查询参数数据没有任何实际价值-您可以简单地将其从原始url断开,并避免excel 255符号链接限制:

....
#your spidercode 
for item in spider.list_of_items:
    #url = item[url_index] # if each item is a list or tuple
    #url = item[url] # if each item is a dict
    if "?" in url:
        url = url.split("?")[0]
df = pd.DataFrame(spider.list_of_items)
df.to_excel("{}.xlsx".format(file_name))

请看另一个与此相关的问题:熊猫在默认情况下使用xlsxwriter。@CharleckLark有办法解决这个问题吗。我现在知道这是一个excel问题,所以解决方法是切断(缩短)链接,或者将其分布在两个单元格上,对吗?@Gallaecio很抱歉,我无法共享更多代码,爬行器是一步一步800行的。我分享了我认为足以解决的问题
....
#your spidercode 
for item in spider.list_of_items:
    #url = item[url_index] # if each item is a list or tuple
    #url = item[url] # if each item is a dict
    if "?" in url:
        url = url.split("?")[0]
df = pd.DataFrame(spider.list_of_items)
df.to_excel("{}.xlsx".format(file_name))