有个爬虫需要读取数据库的url进行循环爬取,同时还要把url作为字段值来标记爬取到的数据归属于哪个url,需要涉及到爬虫方法间的数据传递,传递方法meta百度一下全都是,但是应用到我的需求的时候出现了不可描述的错误:
def start_requests(self):
user_in_sql_list = [] # 这是列表是从数据库读取来的url列表
for res in results:
if res:
user_in_sql = res['user'].split('/')[-1]
user_in_sql_list.append(user_in_sql)
for start_urls_part in user_in_sql_list:
# 这个start_urls_part就是最终还要写进数据的字段值,需要把它放进下一个请求一起传递
yield scrapy.Request('https://weheartit.com/'+start_urls_part+'?page=1',
meta={'user': start_urls_part},
callback=self.parse)
# 这段是请求start_urls获取下一层的urls
def parse(self, response):
for href in response.css('div.no-padding>div>a::attr