V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  saximi  ›  全部回复第 3 页 / 共 11 页
回复总数  201
1  2  3  4  5  6  7  8  9  10 ... 11  
2017-10-16 23:00:31 +08:00
回复了 saximi 创建的主题 Python 请教关于 PYTHON3.6 下使用 MYSQL 数据库的问题
@infun
@herozem
@cxyfreedom 我试过 PYMYSQL,但是有些问题:

dbpool=adbapi.ConnectionPool('MySQLdb',**dbargs) 这个语句中的'MySQLdb'要改成什么?
cursorclass=MySQLdb.cursors.DictCursor 这个语句中的 MySQLdb 又要改成什么?
2017-10-16 22:23:44 +08:00
回复了 saximi 创建的主题 Python 请教关于 PYTHON3.6 下使用 MYSQL 数据库的问题
@takanasi 谢谢,但是 SQLAlchemy 是另外一个框架,和我问的问题没有直接关系吧?
@ioven 博文中的代码,在插入和更新记录时,是每条记录就提交一次事务么? 如果不是,那么在哪里可以设置一次事务包括多少条记录呢?
@WoodenRobot
browser = Browser('chrome', headless=True)
请问上面语句返回的 browser 对象如何与 selenium 的 webdriver 结合起来使用,使得可以操作 selenium 的 webdriver 方法返回的对象呢?
2017-10-15 12:49:23 +08:00
回复了 saximi 创建的主题 Python 请大家推荐 MangoDB 的学习资料
@circle2 请教,为何要转 Cassandra,和 MongoDB 相比的优势是?
@ioven 谢谢。为了能 import MySQLdb,我应该安装什么包呢?
我在网上看到这句话:“ MySQLdb,目前看来,可以视为一个不再继续维护的项目了。另外,针对 python 3.x 的 mysql,另外一个项目,pymysql 导致可以考虑。其是兼容 dbapi 的”
因为我是 PYTHON3.6 的版本,所以是不是应该用 pymysql 更合适呢?
如果确实更建议用 pymysql 的话,文章中这些代码在 pymysql 下应该如何改写呢?

dbpool=adbapi.ConnectionPool('MySQLdb',**dbargs)
cursorclass=MySQLdb.cursors.DictCursor

另外,d.addBoth(lambda _:item) 这个语句的作用是什么呢?
恳请指点!
@ioven 在这篇文章中还看到以下的代码,上网搜了搜没找到关于这三个语句用法的详细说明,不知哪里可以找到?
特别是第三条语句的用法猜不出来。

d=self.dbpool.runInteraction(self._do_upinsert,item,spider)
d.addErrback(self._handle_error,item,spider)
d.addBoth(lambda _:item)
@ioven 感谢,文章中的代码好像适用于 PYTHON2 的环境,我在 PYTHON3 运行时遇到下面几个问题,恳请指点:
1、MySQLdb 包在 WIN7+PYTHON3 的环境下应该改为用 pymysql ?
2、dbpool=adbapi.ConnectionPool('MySQLdb',**dbargs) 这个方法对应的 PYTHON3 的语法应该是什么?
3、cursorclass=MySQLdb.cursors.DictCursor, 这个语句对应的 PYTHON3 的语法应该是什么?
4、conn.execute() 这个方法的 conn 在文中找不到定义的地方,我看文中有 conn.fetchone()这样的方法调用,是否说明 conn 是个游标,但是 adbapi.ConnectionPool 是没有 cursor 属性的,那么游标是如何定义的呢?
5、程序有 INSERT 的操作,但是为何没有 commit()来提交事务,这样不会有问题么?
@WoodenRobot 感谢,我试试看,看起来很方便
@choury 谢谢,可惜无法翻墙看不了
@yuxianghe 谢谢,我先学习一下这篇文章
@sunchen 您说的 spider 对象就是 pipeline 中的 self 对象吧?
如果不是的话,能否举例告知 spider 对象中的什么属性可以存放上述三个方法返回的对象呢?

关于不同文件中同名方法的冲突,我担心的是 pipelines.pymiddlewares.py 中都有这两个方法时:open_spider()、close_spider(),比如开发人员一时粗心,在 pipelines.py 的 open 方法中将某个变量赋 A 值,但是在 middlewares.py 中的 open 方法中又将整个变量赋 B 值,此时就会出现冲突了,到底实际运行起来,会以哪个文件中的方法为准呢?
@ioven 感谢,我先看看去
@xielemon 有 batch insert 的实例么?感谢!
@anguslg 呵呵,真不好意思,我的主贴中虽然把问题描述分为了三个段落,但是每行内容确实很长,下回我会注意让每行内容不要太长的。
@sunchen 因为 pipelines.pymiddlewares.py 中都可以定义这两个方法:open_spider()、close_spider()。
那么如果两个文件中同名方法的处理逻辑出现冲突了怎么办呢?
@sunchen 谢谢指点,关于这个做法,我有疑问。例如下面这三个方法返回的对象,如果在爬虫主程序中和 pipelines.py 中都要访问,要如何才能在两个文件之间正确传递呢?
pymysql.connect()
pymysql.connect().cursor()
webdriver.Chrome()
2017-10-11 19:59:33 +08:00
回复了 saximi 创建的主题 Python 请教 selenium+Chrome 爬网页的问题
@woshichuanqilz 我试了你的代码是可以执行的,出错的原因是我主贴中给出的 URL 是错误的,你使用这个正确的 URL 再看看? buy 之前的空格要去掉
http:// buy.ccb.com/searchproducts/pv_0_0_0_0_1.jhtml?query=*&selectCatId=12001001&catId=12001001&isBH=false&area=
2017-10-10 20:00:51 +08:00
回复了 saximi 创建的主题 Python 请问 PYTHON3 下是不是无法安装 pytesseract 这个包?
@qianc1990 请问是要先装 tesseract 还是装 tesseract-ocr ?
2017-10-10 19:35:12 +08:00
回复了 saximi 创建的主题 Python 请教 selenium+Chrome 爬网页的问题
@mlyy 非常感谢,用帖子中提到的某个方法解决了。问题的原因是对于 Chrome 浏览器,当访问的页面大到需要拖动滚动条才能完全浏览时,对于未拖动滚动条时没出现的元素,是不能 click 的。我觉得这应该是 Chrome 对开发者不够友好的地方吧。
1  2  3  4  5  6  7  8  9  10 ... 11  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2766 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 00:23 · PVG 08:23 · LAX 16:23 · JFK 19:23
Developed with CodeLauncher
♥ Do have faith in what you're doing.