[Scrapy FiveMinutesウェブサイト] [エネルギー業界ニュース] Scrapyの実際の戦闘中国石炭市場ネットワークサイトのデータキャプチャ

ターゲットウェブサイトの紹介

China Coal Market Networkは、石炭ニュース、石炭市場分析、石炭価格、および石炭データを統合する包括的な石炭情報プラットフォームであり、石炭生産、石炭販売、石炭消費、石炭港、石炭在庫、石炭の輸出入、石炭輸送、等
ここに画像の説明を挿入

Scrapyを開始する

データ収集の準備

1. 5分でウェブサイトをすばやくクロールするという考えを理解していない人のために、まず[ウェブサイトのScrapy5分]サイトデータ全体の基本的な知識を見てみ
ましょう

2.データのキャプチャ、ビジネス管理、および並べ替えについて理解していません。まず
[Scrapy Five MinutesWebサイト]クローラーターゲットの並べ替えとデータの準備を確認してください。

3. Scrapyテンプレートの大量生産を知らない人は、最初にそれを参照してください(必見)
[Scrapy5分Webサイト]データキャプチャプロジェクトフレームワーク一般テンプレート

データ照合結果

1.スクリーンショットをExcelに保存します
ここに画像の説明を挿入

テンプレートアプリケーション

スパイダーの下の<プロジェクト> .pyファイル

1.スパイダープロジェクトを作成します

scrapy genspider www_cctd_com_cn " "

2.
サイト全体のCSSスタイルを整理します。最初にページのCSSスタイルを見てみましょう。サイト全体が統一されてクールです。
ここに画像の説明を挿入

3.www_cctd_com_cn.pyのコンテンツを変更します

ここでは、変更が必要な部分を説明し、他の場所はテンプレートを参照しているので、変更は不要です。

  • 範囲とカスタムの説明
    allowed_domains = []
    web_name = "中国煤炭市场"
  • クロールデータ情報を追加する
    start_menu = [
        # 新闻资讯汇总
        [
            {
    
    "channel_name": "煤炭资讯-新闻资讯", "url": "https://www.cctd.com.cn/list-10-1.html", },
            {
    
    "channel_name": "煤炭资讯-资讯中心", "url": "https://www.cctd.com.cn/list-9-1.html", },
            {
    
    "channel_name": "煤炭资讯-CCTD原创", "url": "https://www.cctd.com.cn/list-42-1.html", },
            {
    
    "channel_name": "煤炭资讯-宏观经济", "url": "https://www.cctd.com.cn/list-15-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭行业", "url": "https://www.cctd.com.cn/list-17-1.html", },
            {
    
    "channel_name": "煤炭资讯-钢铁行业", "url": "https://www.cctd.com.cn/list-18-1.html", },
            {
    
    "channel_name": "煤炭资讯-焦炭行业", "url": "https://www.cctd.com.cn/list-139-1.html", },
            {
    
    "channel_name": "煤炭资讯-电力行业", "url": "https://www.cctd.com.cn/list-19-1.html", },
            {
    
    "channel_name": "煤炭资讯-建材行业", "url": "https://www.cctd.com.cn/list-20-1.html", },
            {
    
    "channel_name": "煤炭资讯-交通行业", "url": "https://www.cctd.com.cn/list-23-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤化工行业", "url": "https://www.cctd.com.cn/list-21-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭综合", "url": "https://www.cctd.com.cn/list-176-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭运行", "url": "https://www.cctd.com.cn/list-361-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭进出口", "url": "https://www.cctd.com.cn/list-114-1.html", },
            {
    
    "channel_name": "煤炭资讯-国际煤炭", "url": "https://www.cctd.com.cn/list-113-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭政策", "url": "https://www.cctd.com.cn/list-11-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭企业", "url": "https://www.cctd.com.cn/list-22-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭安全", "url": "https://www.cctd.com.cn/list-108-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭资源", "url": "https://www.cctd.com.cn/list-109-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭科技", "url": "https://www.cctd.com.cn/list-112-1.html", },
            {
    
    "channel_name": "煤炭资讯-节能环保", "url": "https://www.cctd.com.cn/list-115-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭市场分析与评论", "url": "https://www.cctd.com.cn/list-14-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭市场周报", "url": "https://www.cctd.com.cn/list-87-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭市场月报", "url": "https://www.cctd.com.cn/list-88-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭价格分析", "url": "https://www.cctd.com.cn/list-91-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭生产情况", "url": "https://www.cctd.com.cn/list-98-1.html", },
            {
    
    "channel_name": "煤炭资讯-港口煤炭市场", "url": "https://www.cctd.com.cn/list-93-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭销售情况", "url": "https://www.cctd.com.cn/list-138-1.html", },
            {
    
    "channel_name": "煤炭资讯-钢焦煤市场", "url": "https://www.cctd.com.cn/list-92-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭海运市场", "url": "https://www.cctd.com.cn/list-125-1.html", },
            {
    
    "channel_name": "煤炭资讯-煤炭直供电厂", "url": "https://www.cctd.com.cn/list-122-1.html", },
            {
    
    "channel_name": "煤炭资讯-国际煤市点评", "url": "https://www.cctd.com.cn/list-95-1.html", },
            {
    
    "channel_name": "市场分析-煤炭市场分析&评论 ", "url": "https://www.cctd.com.cn/list-13-1.html", },
            {
    
    "channel_name": "市场分析-煤炭市场快报", "url": "https://www.cctd.com.cn/list-128-1.html", },
            {
    
    "channel_name": "市场分析-煤炭市场分析&评论", "url": "https://www.cctd.com.cn/list-13-1.html", },
            {
    
    "channel_name": "煤炭分析-价格", "url": "https://www.cctd.com.cn/list-91-1.html", },
            {
    
    "channel_name": "煤炭分析-钢焦煤", "url": "https://www.cctd.com.cn/list-92-1.html", },
            {
    
    "channel_name": "煤炭分析-港口", "url": "https://www.cctd.com.cn/list-93-1.html", },
            {
    
    "channel_name": "煤炭分析-无烟煤", "url": "https://www.cctd.com.cn/list-94-1.html", },
            {
    
    "channel_name": "煤炭分析-点评", "url": "https://www.cctd.com.cn/list-95-1.html", },
            {
    
    "channel_name": "煤炭分析-扫描", "url": "https://www.cctd.com.cn/list-96-1.html", },
            {
    
    "channel_name": "煤炭分析-上旬", "url": "https://www.cctd.com.cn/list-89-1.html", },
            {
    
    "channel_name": "煤炭分析-中旬", "url": "https://www.cctd.com.cn/list-90-1.html", },
            {
    
    "channel_name": "煤炭分析-生产", "url": "https://www.cctd.com.cn/list-98-1.html", },
            {
    
    "channel_name": "煤炭分析-运输", "url": "https://www.cctd.com.cn/list-99-1.html", },
            {
    
    "channel_name": "煤炭分析-电力", "url": "https://www.cctd.com.cn/list-100-1.html", },
            {
    
    "channel_name": "煤炭分析-钢铁", "url": "https://www.cctd.com.cn/list-101-1.html", },
            {
    
    "channel_name": "煤炭分析-焦炭", "url": "https://www.cctd.com.cn/list-102-1.html", },
            {
    
    "channel_name": "煤炭分析-建材", "url": "https://www.cctd.com.cn/list-103-1.html", },
            {
    
    "channel_name": "煤炭分析-化工", "url": "https://www.cctd.com.cn/list-104-1.html", },
            {
    
    "channel_name": "煤炭分析-煤炭动态", "url": "https://www.cctd.com.cn/list-116-1.html", },
            {
    
    "channel_name": "煤炭分析-动力煤", "url": "https://www.cctd.com.cn/list-133-1.html", },
            {
    
    "channel_name": "煤炭分析-综述", "url": "https://www.cctd.com.cn/list-118-1.html", },
            {
    
    "channel_name": "煤炭分析-国际", "url": "https://www.cctd.com.cn/list-135-1.html", },
            {
    
    "channel_name": "煤炭分析-炼焦煤", "url": "https://www.cctd.com.cn/list-134-1.html", },
            {
    
    "channel_name": "煤炭分析-库存", "url": "https://www.cctd.com.cn/list-120-1.html", },
            {
    
    "channel_name": "煤炭分析-价格", "url": "https://www.cctd.com.cn/list-121-1.html", },
            {
    
    "channel_name": "煤炭分析-进出口", "url": "https://www.cctd.com.cn/list-123-1.html", },
            {
    
    "channel_name": "煤炭分析-直供电厂", "url": "https://www.cctd.com.cn/list-122-1.html", },
            {
    
    "channel_name": "煤炭分析-进出口", "url": "https://www.cctd.com.cn/list-123-1.html", },
            {
    
    "channel_name": "煤炭分析-港口", "url": "https://www.cctd.com.cn/list-124-1.html", },
            {
    
    "channel_name": "煤炭分析-运价", "url": "https://www.cctd.com.cn/list-125-1.html", },
            {
    
    "channel_name": "煤炭分析-冶金", "url": "https://www.cctd.com.cn/list-126-1.html", },
            {
    
    "channel_name": "煤炭分析-生产", "url": "https://www.cctd.com.cn/list-136-1.html", },
            {
    
    "channel_name": "煤炭分析-运输", "url": "https://www.cctd.com.cn/list-137-1.html", },
            {
    
    "channel_name": "煤炭分析-销售", "url": "https://www.cctd.com.cn/list-138-1.html", },
            {
    
    "channel_name": "煤炭分析-市场观察员", "url": "https://www.cctd.com.cn/list-44-1.html", },
            {
    
    "channel_name": "煤炭分析-指数报告", "url": "https://www.cctd.com.cn/list-45-1.html", },
            {
    
    "channel_name": "煤炭分析-全国", "url": "https://www.cctd.com.cn/list-91-1.html", },
            {
    
    "channel_name": "煤炭分析-CCTD秦皇岛", "url": "https://www.cctd.com.cn/list-463-1.html", },
            {
    
    "channel_name": "煤炭分析-内蒙古", "url": "https://www.cctd.com.cn/list-47-1.html", },
            {
    
    "channel_name": "煤炭分析-山西", "url": "https://www.cctd.com.cn/list-49-1.html", },
            {
    
    "channel_name": "煤炭分析-陕西", "url": "https://www.cctd.com.cn/list-48-1.html", },
            {
    
    "channel_name": "煤炭分析-湖北", "url": "https://www.cctd.com.cn/list-642-1.html", },
            {
    
    "channel_name": "煤炭分析-重庆", "url": "https://www.cctd.com.cn/list-556-1.html", },
            {
    
    "channel_name": "煤炭分析-榆林", "url": "https://www.cctd.com.cn/list-543-1.html", },
            {
    
    "channel_name": "煤炭分析-长江口", "url": "https://www.cctd.com.cn/list-423-1.html", },
            {
    
    "channel_name": "动力煤期货-新闻资讯 ", "url": "https://www.cctd.com.cn/list-609-1.html", },
            {
    
    "channel_name": "动力煤期货-投研观点 ", "url": "https://www.cctd.com.cn/list-610-1.html", },
            {
    
    "channel_name": "动力煤期货-交割情况 ", "url": "https://www.cctd.com.cn/list-611-1.html", },
            {
    
    "channel_name": "动力煤期货-动力煤期货高级分析师 ", "url": "https://www.cctd.com.cn/list-625-1.html", },
            {
    
    "channel_name": "动力煤期货-活动动态", "url": "https://www.cctd.com.cn/list-607-1.html", },
            {
    
    "channel_name": "动力煤期货-公告与通知 ", "url": "https://www.cctd.com.cn/list-606-1.html", },
            {
    
    "channel_name": "资讯中心-新闻资讯-热点数据 ", "url": "https://www.cctd.com.cn/list-576-1.html", },
        ]
    ]
  • スタイル仕上げ

ウェブサイト全体のデータリストにあるのと同じ数のparseXがあり、

        parse_list = [
            self.parse1,
        ]
  • タイトルとリンクと表紙
    Item_thumbImgは、ウェブサイトのコンテンツリスト全体に画像がないため使用されていません。
		Item_title = response.xpath('//td[@style="padding-left: 10px"]/li/a/text()').extract()  # 文章标题列表
        Item_url = response.xpath('//td[@style="padding-left: 10px"]/li/a/@href').extract()  # 文章链接列表
        # Item_thumbImg = response.xpath('//标签[@class="属性]/li/a/img/@src').extract()  # 文章封面图片列表

Spiderの下のParse_detail.pyファイル

1.詳細ページのコンテンツを取得します

リストデータ詳細ページのCSSクロールスタイルを変更します
ここに画像の説明を挿入

    # 处理详情页带格式,这里整个页面进行抓取
    item['content'] = ""
    if 'class="news_show"' in response.text and len(None2Str(item['content'])) < 5:
        item['content'] = response.xpath('//div[@class="news_show"]').extract_first()
    if 'id="Zoom"' in response.text and len(None2Str(item['content'])) < 5:
        item['content'] = response.xpath('//div[@id="Zoom"]').extract_first()

2.特別な指示

一部のウェブサイトのプログラマーは、10ページと9スタイルで、ある程度熱狂的です。すべてのページを開いて詳細ページのCSS形式を確認することは不可能であるため、一般的な解決策があります。

  • コンテンツが初めてキャプチャされた後、MongoDBデータベースを開き、次のコマンドを実行して、本文を含むページデータを除外します。これらは、指定されたスタイルに従ってキャプチャされないデータですが、すべてのページのデータです。直接キャプチャされます。
db.你的表名.find({content:/body/})

ここに画像の説明を挿入

  • リンクループを開いて、mongoコマンドがコンテンツを除外しなくなるまで、詳細ページのコンテンツを処理します。

おすすめ

転載: blog.csdn.net/qq_20288327/article/details/113673065