吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1683|回复: 8
收起左侧

[讨论] 小白的第一篇scrapy框架爬取 看视频很简单 一写各种报错,还好最后还能跑起来 留...

  [复制链接]
lihu5841314 发表于 2021-5-29 19:06
[Asm] 纯文本查看 复制代码
import scrapy
from  copy import deepcopy



class ZxSpider(scrapy.Spider):
    name = 'zx'
    allowed_domains = ['zxcs.info']
    start_urls = ['http://zxcs.info/']

    def parse(self, response):
        #大分类分组
        li_list = response.xpath('.//div[@id="nav"]/ul/li')[1:]
        for li in li_list:
            item = {}
            item["b_cate"] = li.xpath('./a//text()').extract_first()
            item["b_href"] = li.xpath('./a/@href').extract_first()
            #小分类分组
            li_2_list= li.xpath('./ul/li')
            for li_2 in li_2_list:
                item["s_cate"]= li_2.xpath('./a/text()').extract_first()
                item["s_href"] = li_2.xpath('./a/@href').extract_first()

                if item["s_href"] is not None:
                    yield scrapy.Request(item["s_href"],
                                         callback=self.parse_book_list,
                                         meta= {"item":deepcopy(item)}
                                         )
                else:
                    yield scrapy.Request(item["b_href"],
                                         callback=self.parse_book_list,
                                         meta={"item":deepcopy(item)}
                                         )


    def parse_book_list(self,response):
        item = response.meta["item"]
        dl_list =response.xpath('// div[@class="wrap"]/div[2]//dl')

        #图书列表页分组
        for dl in dl_list:
              item["book_name"] = dl.xpath('./dt/a/text()').extract_first()
              item["book_detail"] = dl.xpath('./dd/text()').extract_first()
              item["book_href"] = dl.xpath('./dt/a/@href').extract_first()

              yield scrapy.Request(
                item["book_href"],
                callback=self.parse_book_detail,
                meta={"item":deepcopy(item)}
               )
        #翻页
        a_pagenavi = response.xpath('//div[@id="pagenavi"]/a/@href').extract()
        a_pagenavi = a_pagenavi[5]
        i = a_pagenavi.split('/')[-1]
        y=1
        for  page  in  i:
            if   y <= int(page):
                y += 1
                next_url = item["s_href"] + "/page/" +str(y)

                yield  scrapy.Request(next_url,
                                      callback=self.parse_book_list,
                                      meta={"item":item}
                                      )


    def parse_book_detail(self,response):
        item = response.meta["item"]
        item["book_img"] = response.xpath('.//div[@id="content"]/div//a/@href').extract_first()
        item["book_img"] =   "http://zxcs.info" +   item["book_img"]
        item["book_down_url"] = response.xpath('//*[@id="content"]/div[2]/div[2]/div[2]/p[1]/a/@href').extract_first()
        item["book_down_url"] = "http://zxcs.info" + item["book_down_url"]
        print(item)

免费评分

参与人数 4吾爱币 +4 热心值 +4 收起 理由
woyucheng + 1 + 1 热心回复!
blindcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
TXWD东方不败 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
qianshang666 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| lihu5841314 发表于 2021-5-29 19:08
知轩的网站得图书 只取到下载链接
纳兰龙珠 发表于 2021-5-29 19:49
lihu5841314 发表于 2021-5-29 19:08
知轩的网站得图书 只取到下载链接

继续努力,继续关注,向你请教
qianshang666 发表于 2021-5-29 20:05
cxfqy 发表于 2021-5-29 20:47
第一个程序能跑起来,就不错了。再接再厉
blindcat 发表于 2021-5-29 21:23
不错,学习了,感谢分享
wtq1314 发表于 2021-5-29 22:40
能够跑起来就不错了。楼主要能把思路写一下就好了
错在一起 发表于 2021-5-30 00:36
学习了,感谢分享
lonegm 发表于 2021-5-30 23:41
scrapy是个好东西,还有xpath也是好东西,多练习就熟练了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 04:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表