zoukankan      html  css  js  c++  java
  • 爬取数据并解析

    爬取数据并解析

    爬虫文件中parse方法中写:

    def parse(self, response):  # 解析,请求回来,自动执行parser,在这个方法中做解析
            # 解析 方式一:使用bs4解析
            # from bs4 import BeautifulSoup
            # soup=BeautifulSoup(response.text,'lxml')
            # soup.find_all()
    
            # 方式二:使用内置的css解析器
            # css与xpath解析后的数据都放在列表中
            # 取第一个:extract_first()
            # 取出所有的extract()
            # css选择器取文本和属性:
                # .link-title::text
                # .link-title::attr(href)
            div_list = response.css('div.link-item')
            for div in div_list:
                title = div.css('.link-title::text').extract_first()
                url = div.css('.link-title::attr(href)').extract_first()
                if 'http' not in url:
                    url = 'https://dig.chouti.com/'+url
                img_url = div.css('.image-scale::attr(src)').extract_first()
                if not img_url:
                    img_url = div.css('.image-item::attr(src)').extract_first()
                print('''
                新闻标题:%s
                新闻连接:%s
                新闻图片:%s
                ''' % (title, url, img_url))
    
            # 方式三:使用内置的xpath解析
            # css与xpath解析后的数据都放在列表中
            # 取第一个:extract_first()
            # 取出所有的extract()
            # xpath选择器取文本和属性:
                # /text()
                # /@属性名
            div_list = response.xpath('//div[contains(@class,"link-item")]')
            for div in div_list:
                title = div.xpath('.//a[contains(@class,"link-title")]/text()').extract_first()
                url = div.xpath('.//a[contains(@class,"link-title")]/@href').extract_first()
                # if 'http' not in url:
                #     url = 'https://dig.chouti.com/' + url
                img_url = div.xpath('.//*[contains(@class,"image-scale")]/@src').extract_first()
                # if not img_url:
                #     img_url = div.xpath('.//*[contains(@class,"image-item")]/@src').extract_first()
                print('''
                新闻标题:%s
                新闻连接:%s
                新闻图片:%s
                ''' % (title, url, img_url))
  • 相关阅读:
    Android新手之旅(5) 网络资源
    Android新手之旅(10) 嵌套布局
    vertest
    Android新手之旅(4) 通过HTTP访问web
    Android新手之旅(6) 与.Net不同之处
    Android新手之旅(7) RadioButton的自定义
    Android新手之旅(9) 自定义的折线图
    Android新手之旅(8) ListView的使用
    ECLIPSE 安装及与CDT 的使用 多线程编程
    Eclipse的代码提示背景是黑色
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12675679.html
Copyright © 2011-2022 走看看