scrapy 爬取数据后 如果实现外键的插入
scrapy 爬取数据后通过pipelines插入数据,在表中有外键,这个外键数据该如何插入数据库中?求教,谢谢表设计如下:
category表:
id,
category
info表:
id,
name,
image,
category_id
求教在Pipelines中如何请问,怎么实现根据category_id 外键 插入数据!
本帖最后由 VioletKiss 于 2019-7-3 16:26 编辑
两种方法:
1. 先插category表,再插info表,另外 try except插入category表的主键冲突异常就行
2. 再加一张关联表,不设主键,然后去重 VioletKiss 发表于 2019-7-3 16:22
两种方法:
1. 先插category表,再插info表,另外 try except插入category表的主键冲突异常就行
在Pipelines 里面item只能一个一个的插入,如果不用外键的话,数据中例如抓取电视剧多个ur播放l链接这种情况有什么好的解决方案吗 本帖最后由 VioletKiss 于 2019-7-4 09:48 编辑
xiaomayi2012 发表于 2019-7-4 09:18
在Pipelines 里面item只能一个一个的插入,如果不用外键的话,数据中例如抓取电视剧多个ur播放l链接这种 ...
是这样吗:https://blog.csdn.net/lucky404/article/details/79427304
既然都有数据了,插就完事了呀
如果说item中有info和category表的所有数据,那么你就先判断categoryId存不存在,不存在插category表,存在就不插,然后插info表就行了啊
主要是 item 里面是些什么数据 这才是主要的 你没说啊 本帖最后由 xiaomayi2012 于 2019-7-4 13:36 编辑
VioletKiss 发表于 2019-7-4 09:46
是这样吗:https://blog.csdn.net/lucky404/article/details/79427304
既然都有数据了,插就完事了呀
...
我现在在item中已经获取到了数据,item下通过Debug模式 获取到的数据格式如下:
title = ‘反贪风暴4’
category= ['动作片','犯罪片']
...
downloads={
{'title': '标题1',
'磁力链接':'magnet:?xt=urn:btih:B9781903F8D37F91001D',
'迅雷链接':'thunder://QUFtYWduZXQ6P3h0PXVybjpidGloOk'},
{'title': '标题2',
'磁力链接':'magnet:?xt=urn:btih:B9781903F8D37F91001D',
'迅雷链接':'thunder://QUFtYWduZXQ6P3h0PXVybjpidGloOk'},
}
现在item返回的 category值是一个列表形式download值是一个字典,因为下一步我想把这些数据存入到mysql中,这种情况在Pipelines中我该如何存储 你如果想简单点,一张表,就直接存字符串,查询分类的时候用like查,如果同时查多个分类就and多几次like就行
如果你想分两张表存,那么就要再加一张中间表,info表和category表是多对多的关系,需要一张中间表来保持各自对应的id :
表设计如下:
category表:
category_id,
category_name
info表:
info_id,
name,
image,
category_id
中间表:info_category
info_id,
category_id
中间表可以用这两个id作为联合主键
页:
[1]