我传入的good_id=100010816812,不知道为何存到数据库里变成了2147483647

来源:9-9 通过selenium解析商品详情页 - 3

慕斯8319460

2020-07-12

from selenium import webdriver
from scrapy import Selector
from jd_spider.models import *    # 文件包名和程序名不能是一个 否则近者优先  会报错
import json
import warnings
warnings.filterwarnings('ignore')

browser=webdriver.Chrome()

def get_good_info(good_id):
    good=Good(id=good_id)
    url='https://item.jd.com/{}.html'.format(good_id)
    browser.get(url)
    html=browser.page_source
    sel=Selector(text=html)
    name=sel.xpath('//div[@class="sku-name"]/text()').get().strip()
    supplier=sel.xpath('//div[@id="summary-service"]/span/text()').get()
    price=sel.xpath('//span[@class="price J-p-{}"]/text()'.format(good_id)).get()
    content=''.join(sel.xpath('//div[@id="detail"]//div[@class="tab-con"]').getall())
    good_images=sel.xpath('//div[@id="spec-list"]//li/img/@src').getall()

    good.name=name
    good.supplier=supplier
    good.price=float(price)
    # good.content=content
    # good.image_list=json.dumps(good_images)

    existed_good = Good.select().where(Good.id == good_id)  # good.id和id是一样的
    if existed_good:
        good.save()
    else:
        good.save(force_insert=True)

if __name__=='__main__':
    get_good_info(100010816812)

图片描述

写回答

2回答

夜愿小夜

2020-12-19

100010816812,超过int最大值了

0
1
bobby
正解 数据库设置为bigint
2020-12-21
共1条回复

bobby

2020-07-13

good=Good(id=good_id)
 这行代码有没有debug过看看是否这里的id是符合你的要求?

0
0

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2378 学习 · 1158 问题

查看课程