Python 刮擦警告后超过URL限制
当scrapy spider完成后,程序使用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
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
....
#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))