我试图从网页上刮取产品信息,使用scrapy。 我的被刮的网页看起来像这样: 从10个产品的product_list页面开始 点击“下一步”button加载下面的10个产品(url在两页之间不会改变) 我使用LinkExtractor来跟踪每个产品链接到产品页面,并获得所有我需要的信息 我试图复制next-button-ajax-call,但无法正常工作,所以我给selenium一个尝试。 我可以在一个单独的脚本中运行selenium的webdriver,但我不知道如何与scrapy集成。 我应该在哪里把selenium元素放入我的蜘蛛蛛? 我的蜘蛛是相当标准的,如下所示: class ProductSpider(CrawlSpider): name = "product_spider" allowed_domains = ['example.com'] start_urls = ['http://example.com/shanghai'] rules = [ Rule(SgmlLinkExtractor(restrict_xpaths='//div[@id="productList"]//dl[@class="t2"]//dt'), callback='parse_product'), ] def parse_product(self, response): self.log("parsing product %s" %response.url, level=INFO) hxs = HtmlXPathSelector(response) # actual data follows 任何想法是赞赏。 谢谢!
可能重复: 我需要在Python中安全地存储用户名和密码,我有什么select? 我正在寻找一种方法来安全地存储我打算在某些Python脚本中使用的密码。 我将login到不同的东西,我不想将密码作为纯文本存储在脚本本身。 相反,我想知道是否有任何能够安全地存储这些密码的东西,然后使用像我可以input到脚本开始的主密码的东西来检索它们。
我有以下格式的.ics文件。 什么是parsing它的最好方法? 我需要检索每个条目的摘要,描述和时间。 BEGIN:VCALENDAR X-LOTUS-CHARSET:UTF-8 VERSION:2.0 PRODID:-//Lotus Development Corporation//NONSGML Notes 8.0//EN METHOD:PUBLISH BEGIN:VTIMEZONE TZID:India BEGIN:STANDARD DTSTART:19500101T020000 TZOFFSETFROM:+0530 TZOFFSETTO:+0530 END:STANDARD END:VTIMEZONE BEGIN:VEVENT DTSTART;TZID="India":20100615T111500 DTEND;TZID="India":20100615T121500 TRANSP:OPAQUE DTSTAMP:20100713T071035Z CLASS:PUBLIC DESCRIPTION:Emails\nDarlene\n Murphy\nDr. Ferri\n UID:12D3901F0AD9E83E65257743001F2C9A-Lotus_Notes_Generated X-LOTUS-UPDATE-SEQ:1 X-LOTUS-UPDATE-WISL:$S:1;$L:1;$B:1;$R:1;$E:1;$W:1;$O:1;$M:1 X-LOTUS-NOTESVERSION:2 X-LOTUS-APPTTYPE:0 X-LOTUS-CHILD_UID:12D3901F0AD9E83E65257743001F2C9A END:VEVENT BEGIN:VEVENT DTSTART;TZID="India":20100628T130000 DTEND;TZID="India":20100628T133000 TRANSP:OPAQUE DTSTAMP:20100628T055408Z CLASS:PUBLIC DESCRIPTION: SUMMARY:smart energy management LOCATION:8778/92050462 UID:07F96A3F1C9547366525775000203D96-Lotus_Notes_Generated X-LOTUS-UPDATE-SEQ:1 X-LOTUS-UPDATE-WISL:$S:1;$L:1;$B:1;$R:1;$E:1;$W:1;$O:1;$M:1 X-LOTUS-NOTESVERSION:2 X-LOTUS-NOTICETYPE:A X-LOTUS-APPTTYPE:3 X-LOTUS-CHILD_UID:07F96A3F1C9547366525775000203D96 END:VEVENT […]
我正在使用Python 2.7,我想在Windows 7上使用pywin32-214。我使用msi安装程序安装pywin32-214。 但是当我在我的Python脚本中导入win32api时,会抛出错误: no module named win32api. 我该怎么办? 我可以在Windows 7中使用pywin32 api吗?
对于这样的任务: from celery.decorators import task @task() def add(x, y): if not x or not y: raise Exception("test error") return self.wait_until_server_responds( 如果它抛出一个exception,我想从守护进程重试它,如何应用指数退避algorithm,即2^2, 2^3,2^4等秒后? 也是从服务器端维护的重试,如果工人碰巧遇害,那么下一个产生的工作人员将采取重试任务?
我的Dockerfile是类似的 FROM my/base ADD . /srv RUN pip install -r requirements.txt RUN python setup.py install ENTRYPOINT ["run_server"] 每当我build立一个新的形象,依赖关系必须重新安装,这可能是在我的地区非常缓慢。 我想要cache已经安装的软件包的一种方法是用这样的新图像覆盖my/base图像: docker build -t new_image_1 . docker tag new_image_1 my/base 所以下次我用这个Dockerfile构build时,我的/ base已经安装了一些软件包。 但是这个解决scheme有两个问题: 覆盖基本图像并不总是可能的 随着更新的图像分层,基本图像变得越来越大 那么我能用什么更好的解决scheme来解决这个问题呢? 编辑##: 关于我的机器上的泊坞窗的一些信息: ☁ test docker version Client version: 1.1.2 Client API version: 1.13 Go version (client): go1.2.1 Git commit (client): d84a070 […]
我想从一个使用matplotlib的vector绘制一个归一化的直方图。 我尝试了以下内容: plt.hist(myarray, normed=True) 以及: plt.hist(myarray, normed=1) 但是这两个选项都不能从[0,1]中产生一个y轴,使得直方图的高程值总和为1.我想要生成这样一个直方图 – 我该怎么做? 谢谢!
我想知道如何设置更具体的日志logging系统。 我所有的任务都使用 logger = logging.getLogger(__name__) 作为模块范围的logging器。 我想芹菜login到“celeryd.log”和我的任务“tasks.log”,但我不知道如何得到这个工作。 使用django-celery中的CELERYD_LOG_FILE我可以将所有芹菜相关的日志消息路由到celeryd.log,但没有任何在我的任务中创build的日志消息的跟踪。
我想从Celery文档运行示例 。 我运行: celeryd –loglevel=INFO /usr/local/lib/python2.7/dist-packages/celery/loaders/default.py:64: NotConfigured: No 'celeryconfig' module found! Please make sure it exists and is available to Python. "is available to Python." % (configname, ))) [2012-03-19 04:26:34,899: WARNING/MainProcess] ————– celery@ubuntu v2.5.1 —- **** —– — * *** * — [Configuration] — * – **** — . broker: amqp://guest@localhost:5672// – ** ———- . […]
我有一个Python脚本。 我启发了自己在其他人的代码,所以我最终使用numpy.random模块的一些东西(例如创build一个从二项分布采取的随机数组),在其他地方,我使用模块random.random 。 有人能告诉我两者之间的主要区别吗? 看看这两个文档的网页,在我看来, numpy.random只是有更多的方法,但我不清楚随机数的产生是不同的。 我所要问的原因是因为我需要将我的主程序播种以进行debugging。 但是,除非我在我导入的所有模块中使用相同的随机数字生成器,否则这是行不通的,这是正确的吗? 另外,我在另一篇文章中阅读了关于不使用numpy.random.seed()的讨论,但是我不明白为什么这是一个糟糕的主意。 我真的很感激,如果有人解释我为什么是这样的话。