Scrapy - 没有列表页面,但我知道每个项目页面的网址

发布于 2024-11-07 06:41:26 字数 563 浏览 4 评论 0原文

我正在使用 Scrapy 来抓取网站。我想要抓取的项目页面如下所示: http://www.somepage.com /itempage/&page=x。其中 x 是从 1100 之间的任意数字。因此,我有一个 SgmlLinkExractor 规则,其中为任何与此类似的页面指定了回调函数。

该网站没有包含所有项目的列表页面,因此我想以某种方式很好地抓取这些网址(从 1100)。这个人在这里< /a> 似乎有同样的问题,但无法弄清楚。

有人有解决办法吗?

I'm using Scrapy to scrape a website. The item page that I want to scrape looks like: http://www.somepage.com/itempage/&page=x. Where x is any number from 1 to 100. Thus, I have an SgmlLinkExractor Rule with a callback function specified for any page resembling this.

The website does not have a listpage with all the items, so I want to somehow well scrapy to scrape those urls (from 1 to 100). This guy here seemed to have the same issue, but couldn't figure it out.

Does anyone have a solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遮了一弯 2024-11-14 06:41:26

您可以在 Spider 中列出所有已知的 URL类' start_urls 属性:

class SomepageSpider(BaseSpider):
    name = 'somepage.com'
    allowed_domains = ['somepage.com']
    start_urls = ['http://www.somepage.com/itempage/&page=%s' % page for page in xrange(1, 101)]

    def parse(self, response):
        # ...

You could list all the known URLs in your Spider class' start_urls attribute:

class SomepageSpider(BaseSpider):
    name = 'somepage.com'
    allowed_domains = ['somepage.com']
    start_urls = ['http://www.somepage.com/itempage/&page=%s' % page for page in xrange(1, 101)]

    def parse(self, response):
        # ...
Saygoodbye 2024-11-14 06:41:26

如果只是一次性的,您可以创建一个包含所有链接的本地 html 文件 file:///c:/somefile.html 。开始抓取该文件并将 somepage.com 添加到允许的域。

或者,在解析函数中,您可以返回一个新的 Request,它是下一个要抓取的 url。

If it's just a one time thing, you can create a local html file file:///c:/somefile.html with all the links. Start scraping that file and add somepage.com to allowed domains.

Alternately, in the parse function, you can return a new Request which is the next url to be scraped.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文