小编Tom*_*art的帖子

如何使用insert_many方法处理pymongo AutoReconnect异常

我有一个包含3个成员的MongoDB副本集和一个存储数据的Python应用程序.

AutoReconnect当使用带有包装器的单个文档插入时,我可以处理pymongo的异常,如下所示:

def safe_mongo_call(method, num_retries, *args, **kwargs):
    while True:
        try:
            return method(*args, **kwargs)
        except (pymongo.errors.AutoReconnect,
                pymongo.errors.ServerSelectionTimeoutError) as e:
            if num_retries > 0:
                logger.debug('Retrying MongoDB operation: %s', str(e))
                num_retries -= 1
            else:
                raise
Run Code Online (Sandbox Code Playgroud)

我不确定在使用批量写入时如何处理这些异常,例如insert_many方法.根据文档,批量写入不是原子的,因此即使发生其中一个异常,也可能已经有一些文档成功写入数据库.因此,我不能简单地重用上面的包装器方法.

如何处理这些情况的最佳方法是什么?

bulkinsert mongodb pymongo replicaset

10
推荐指数
1
解决办法
1088
查看次数

如何使用scrapy从python中的span获取文本?

我在这里放置 HTML 代码:

<div class="rendering rendering_person rendering_short rendering_person_short">
  <h3 class="title">
    <a rel="Person" href="https://moh-it.pure.elsevier.com/en/persons/massimo-eraldo-abate" class="link person"><span>Massimo Eraldo Abate</span></a>
  </h3>
  <ul class="relations email">
    <li class="email"><a href="massimo.abate@ior.it" class="link"><span>massimo.abate@ior.it</span></a></li>
  </ul>
  <p class="type"><span class="family">Person: </span>Academic</p>
</div>
Run Code Online (Sandbox Code Playgroud)

从上面的代码如何提取 Massimo Eraldo Abate?

请帮我。

python scrapy

5
推荐指数
1
解决办法
5694
查看次数

Scrapy-简单的验证码求解示例

在网上寻找Scrapy解决验证码时,我什至没有很好的例子可以入手。

我创建了一个非常基本的验证码页面。http://145.100.108.148/login3/

是否有人提供了可行的示例来解决此问题,或者至少以体面的方式配置了Scrapy来尝试解决此问题。

python captcha scrapy

5
推荐指数
2
解决办法
7675
查看次数

提取嵌入的 pdf

我注意到 docplayer.net 嵌入了许多 pdf 文件。示例:http://docplayer.net/72489212-Excellence-in-prevention-descriptions-of-the-prevention-programs-and-strategies-with-the-greatest-evidence-of-success.html

然而,使用自动化工作流程提取这些 pdf(即下载它们)的过程是如何进行的呢?

python pdf scrapy

5
推荐指数
2
解决办法
1万
查看次数

在没有下载正文的情况下检查scrapy中的响应头

一些pdf网址不以".pdf"结尾,因此,我们只能在检查响应标头后找到.我想避免下载这样的pdf.在Scrapy中,在完全下载响应后检查标题很容易.我如何才下载并检查响应标题并稍后才下载正文?

python scrapy

3
推荐指数
1
解决办法
1083
查看次数

如何使用 Scrapy - XMLfeedspider 从 XML 页面中提取 url、加载它们并提取其中的信息?

我正在使用 Scrapy 中的 XMLfeedspider 从页面 xml 中提取信息。我试图仅提取此页面上标签“loc”内的链接并加载它们,但阻止页面重定向,然后将其发送到最后一个解析节点,该解析节点将从该页面收集信息。问题是我不确定是否可以在“def star_urls”上加载这些页面,或者我是否需要使用 parse_node 并重定向到另一个解析来提取我需要的信息,但即使我尝试这样做,我'我不确定如何仅从 xml 页面中提取链接,而不是所有 loc 标记。

继续我的想法:

这个想法应该是加载这个 xml 页面<loc>从中提取标签内的链接,如下所示:

https://www.gotdatjuice.com/track-2913133-sk-invitational-ft-sadat-x-lylit-all-one-cdq.html https://www.gotdatjuice.com/track-2913131-sk-invitational -ft-mop-we-dont-stop-cdq.html

最后加载每个页面并提取标题和网址。

有任何想法吗?

找到下面我的代码:

from scrapy.loader import ItemLoader
from scrapy.spiders import XMLFeedSpider
from scrapy.http import Request
from testando.items import CatalogueItem

class TestSpider(XMLFeedSpider):

    name = "test"
    allowed_domains = ["gotdajuice.ie"]
    start_urls = [      
        'https://www.gotdatjuice.com/sitemap.xml'
    ]   

    namespaces = [('n', 'http://www.sitemaps.org/schemas/sitemap/0.9')]
    itertag = 'n:loc'
    iterator = 'xml'


    name_path = ".//div[@class='song-name']/h1/text()"


    def start_request(self):
      urls = node.xpath(".//loc/text()").extract()
      for url in urls:
          yield …
Run Code Online (Sandbox Code Playgroud)

python xml scrapy

1
推荐指数
1
解决办法
1538
查看次数

标签 统计

python ×5

scrapy ×5

bulkinsert ×1

captcha ×1

mongodb ×1

pdf ×1

pymongo ×1

replicaset ×1

xml ×1