scrapy 如何把列表页内容和详情页的内容存在一个item?

举例:

https://www.baidu.com/s?&wd=123百度的搜索页面相当于列表页,在列表页抓取了标题、时间、URL,接着还要去抓到的URL里抓取内容。

问题来了,怎么把列表页抓到的和在URL详情页抓到的yield到同一个item。

现在的程序是这样的:

def parse(self,response):
    '''这里获取列表页的标题、时间、URL'''
    '''然后把URL通过Request回调给parse_item'''
    
def parse(self,response):
    '''这里获取URL页面的内容'''

这样的问题是,这两部分好像是分离的,我想把标题、时间、URL、内容都存在一起,可是如果分在两个函数去写好像就不能存一起。

阅读 2.9k
1 个回答

不知道想的对不对.需要输出一个从标题时间url和跳转后url里的内容最为整体可以用def 函数里再包含一个def
或者2个分离的函数 里再用一个函数调用
比如1:

def full_func():
    title = get_title_code
    baiduurl = get_baiduurl_code
    time = get_time_code
    def content_func(baiduurl):
        resp=request.get(baiduurl)
        return (resp.text,resp.url)
    content = content_func(baiduurl)[0]
    url = content_func(baiduurl)[1]
    return (title,time,url,cotent)

比如2

def baidu_func(keyword):
    title = get_title_code
    baiduurl = get_baiduurl_code
    time = get_time_code
    return(title,baiduurl,time)
def site_content(baiduurl):
    resp=request.get(baiduurl)
    return (resp.text,resp.url)
def full_func(keywords):
    baidu_list = baidu_func()
    content_list = site_content(baiduurl)
    return(baidu_list,content_list)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题