Python:如何将字符串附加到一个废弃的列表项?

2024-09-30 10:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在抓取一组url,但是它们都缺少url的基,所以我想将“start_url”作为一个基添加到每个刮取的url中。在

蜘蛛等级:

class MySpider(BaseSpider):
    name = "teslanews"
    allowed_domains = ["teslamotors.com"]
    start_urls = ["http://www.teslamotors.com/blog"]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        updates = hxs.xpath('//div[@class="blog-wrapper no-image"]')

        items = []
        for article in updates:
            item = TeslanewsItem()
            item["date"] =  article.xpath('./div/span/span/text()').extract()
            item["title"] = article.xpath('./h2/a/text()').extract()
            item["url"] = article.xpath('./h2/a/@href').extract()
            items.append(item)
        return items

我不能用base = "http://www.teslamotors.com"做一个简单的item["url"] = article.xpath('./h2/a/@href').extract() + base

因为在for循环中,每个字母都用逗号隔开,所以在末尾加上了基数,而且每个字母都是按字母顺序排列的。在

我是个新手,所以我不知道该怎么做。在


Tags: comhttpurlwww字母articleextractitems
1条回答
网友
1楼 · 发布于 2024-09-30 10:33:06
from scrapy.spider import BaseSpider
from urlparse import urljoin


class MySpider(BaseSpider):
    name = "teslanews"
    allowed_domains = ["teslamotors.com"]

    base = "http://www.teslamotors.com/blog"

    start_urls = ["http://www.teslamotors.com/blog"]

    def parse(self, response):

        updates = response.xpath('//div[@class="blog-wrapper no-image"]')

        items = []
        for article in updates:
            item = TeslanewsItem()
            item["date"] = article.xpath('./div/span/span/text()').extract()
            item["title"] = article.xpath('./h2/a/text()').extract()
            item['url'] = urljoin(self.base, ''.join(article.xpath('./h2/a/@href').extract()))

        return items

相关问题 更多 >

    热门问题