求助, Python 爬虫数据储存 MySQL 问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
luboyan
V2EX    Python

求助, Python 爬虫数据储存 MySQL 问题

  •  
  •   luboyan 2018-07-11 11:59:38 +08:00 via Android 2774 次点击
    这是一个创建于 2654 天前的主题,其中的信息可能已经有所发展或是发生改变。

    疑问: 用 Python 抓取网页数据时,每一个网页对应返回的数据为 json 格式,但是需要的三组数据分别数据两个 key 下,既 A,B 在字段 content 下,C 在字段 url 下,如何循环抓取 A,B,C,并插入到 MySQL ? 我的做法: 1.构造要抓取的网页,用 for 循环从列表中随机选取一个值,和主 url 相加构造; 2.爬取各个构造后的网址,获取到 json,用 for 循环取出 url 字段下的 C 值放入列表 L 中,用 re 取出 content 字段下的 A,B 值,但是取出后 A,B,C 三个值(他们是一一对应的关系)并没有在一起,我应该如何构造让他们在一起,我用 i=0 yield 返回{'title':result[0],'img':[1],'url':L[i]} i=i+1 然后调用 pymysql 函数插入到 MySQL 中。 问题: 按上述做法不可以正确插入到 MySQL 中,上网查询后,准备采用 json 或者 dict 插入,可是应该如何构造出 json 或者 dict. 不知道我的表述有没有把问题说清楚,自学 Python 中,都不知道从那个方面去考虑问题,迭代我觉得需要,只是看不懂怎么弄。

    4 条回复    2018-07-11 20:05:58 +08:00
    hubqin
        1
    hubqin  
       2018-07-11 12:49:16 +08:00   1
    先看官网 https://pymysql.readthedocs.io/en/latest/user/examples.html 给出的例子:
    ```
    # Create a new record
    sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
    cursor.execute(sql, ('[email protected]', 'very-secret'))
    ```
    先拼接出一个 sql,再将各字段的值按顺序组成一个元组(tuple),传入到 execute 函数中。
    这里是我封装的 pymysql 的操作,可供参考: https://github.com/HubQin/sinaCrawlerV/blob/master/database.py
    思路是:将数据组成字典,比如,kw = {}, kw['a']=1,kw['b']=2,...最后以**kw 的形式传入函数, 传入的数据按上面的方式拼装出 sql 和各字段值的元组,最后传入 execute 函数执行插入操作。
    Leiothrix
        2
    Leiothrix  
       2018-07-11 17:35:33 +08:00
    如果是 Scrapy,请使用 meta。
    luboyan
        3
    luboyan  
    OP
       2018-07-11 20:04:49 +08:00
    @hubqin 谢谢你,一直忙于工作,等有时间好好研究下你说的方法,十分感谢
    luboyan
        4
    luboyan  
    OP
       2018-07-11 20:05:58 +08:00
    @Leiothrix 同时也谢谢你,虽然还没用 Scrapy,以后有机会学习下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1137 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 23:34 PVG 07:34 LAX 16:34 JFK 19:34
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86