如何在使用Scrapy Python抓取数据时获取每个详细信息页面上的标题和描述

sqxo8psd  于 2022-11-09  发布在  Python
关注(0)|答案(1)|浏览(85)

如何从这个链接获得关于市场主题的每个详细信息页面上的标题和描述:是的。

我希望数据抓取的结果以 Dataframe 的形式包含每个详细页的标题和描述。
这是我目前的代码,现在我困惑地刮每个细节页获得的描述。

from ast import parse
import scrapy

class CnbcSpider(scrapy.Spider):
    name = 'cnbc'
    allowed_domains = ['cnbcindonesia.com']
    start_urls = ['https://www.cnbcindonesia.com/market/indeks/5']

    def parse(self, response):
        for berita in response.xpath("//article"):
            the_title= berita.xpath("./a/div[@class='box_text']/h2/text()").get()
            the_category= berita.xpath("./a/div[@class='box_text']/span/span/text()").get()
            link = berita.xpath("./a/@href").get()
            # yield{
            #     'Title_page': the_title,
            #     'category_page': the_category,
            #     'link': link 
            # }
            yield scrapy.Request(url=link, callback=self.parse_detail_page)

    def parse_detail_page(self, response):
        title = response.xpath("//h1/text()']").get()
        yield{
                'Title': title,
            }
r55awzrz

r55awzrz1#

当你开始一个零碎的项目时,你需要做的是:
请确保您的items.py文件如下所示:

import scrapy

class CnbcindoItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    url = scrapy.Field()
    article = scrapy.Field()
    author = scrapy.Field()
    timestamp = scrapy.Field()

然后,您的spider文件(使用scrapy genspider ...生成)应如下所示:

import scrapy
from cnbcindo.items import CnbcindoItem

class CnbcspiderSpider(scrapy.Spider):
    name = 'cnbcspider'
    allowed_domains = ['cnbcindonesia.com']
    start_urls = ['https://www.cnbcindonesia.com/market/indeks/5/1?date=']

    def parse(self, response):
        news_cards = response.xpath('//ul[starts-with(@class, "list media_rows")]//article')
        for n in news_cards:
            news_link = n.xpath('.//a/@href').extract()[0]
            yield response.follow(url=news_link, callback = self.parse_article)
        next_page = response.xpath('//i[@class="icon icon-angle-right"]/parent::a/@href').get()
        if next_page and next_page !="#":
            yield response.follow(next_page, callback = self.parse)

    def parse_article(self, response):

        items  = CnbcindoItem()

        items['title'] = response.xpath('//div[@class="container"]//h1/text()').get()
        items['timestamp'] = response.xpath('//div[@class="detail_box"]//div[@class="date"]/text()').get()
        items['author'] = response.xpath('//div[@class="detail_box"]//div[@class="author"]/text()').get()
        items['article'] = ' '.join([x.strip() for x in response.xpath('//div[@class="detail_text"]//p/text()').extract()])
        items['url'] = response.request.url

        yield items

您也可以在settings.py档案中加入自订的DEFAULT_REQUEST_HEADERS,例如:

DEFAULT_REQUEST_HEADERS = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Accept-Language': 'en',
  'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
}

观察如何从forward按钮获得下一页,并根据需要继续,直到该按钮消失。
现在你的spider应该可以正常工作了,并且准备好跟踪所有1400多页来自该部分的新闻。在终端中运行它,使用scrapy crawl cnbcspider -o cnbcindonews.json,将结果保存在JSON文件中。如果你正在考虑将结果保存在数据库中,你需要设置一个管道和一个数据库-参见文档。
生成的json文件如下所示:

[
{"title": "Ekonom: Inflasi Tembus 5,95%, BI Rate Akhir Tahun Bisa ke 5%", "timestamp": "03 October 2022 14:43", "author": "CNBC Indonesia TV, CNBC Indonesia", "article": "VP for Industry and Regional Research Bank Mandiri, Dendi Ramdani menilai pelemahan Rupiah yang terus berlanjut dan menembus Rp 15.285/USD sebagai respon wajar dari pasar imbas rilis inflasi September yang mencapai mencapai 1,71% (mtm) atau 5,95% (yoy). Dendi melihat potensi penguatan Rupiah ditopang kondisi fundamental RI yang masih baik dan mata uang Garuda bisa ke kisaran di bawah Rp 15.000 per USD. Seperti apa ekonom melihat arah pelemahan Rupiah? Dan bagaimana arah kebijakan BI terhadap kondisi ini? Selengkapnya simak dialog Anneke Wijaya dengan VP for Industry and Regional Research Bank Mandiri, Dendi Ramdani dan Wakil Ketua Asosiasi Pertekstilan Indonesia (API), Ian Syarif dalam Power Lunch, CNBC Indonesia (Senin, 03/10/2022)", "url": "https://www.cnbcindonesia.com/market/20221003135328-19-376796/ekonom-inflasi-tembus-595-bi-rate-akhir-tahun-bisa-ke-5"},
{"title": "Perhatian! e-Commerce Djarum Group Blibli Siap IPO", "timestamp": "03 October 2022 15:44", "author": "Romys Binekasri, CNBC Indonesia", "article": "- Otoritas Jasa Keuangan (OJK) buka suara soal rencana perusahaan rintisan atau Startup\u00a0e-commerce milik Djarum\u00a0Group, Blibli yang akan melakukan penawaran umum saham perdana atau initial public offering (IPO) Blibli. Kepala Eksekutif Pengawas Pasar Modal OJK Inarno Djajadi mengungkapkan, Blibli sebenarnya telah memasukkan pernyataan pendaftaran cukup lama. Namun, rencana tersebut tertunda karena faktor kondisi tertentu. \"Blibli memang sudah masuk dalam pernyataan pendaftaran sudah cukup lama, dan mungkin karena melihat situasi kondisi sempat itu ditunda untuk IPO,\" ujarnya dalam konferensi pers secara virtual, Senin (3/10/2022). ADVERTISEMENT SCROLL TO RESUME CONTENT Menurutnya, keputusan penundaan rencana aksi korporasi suatu perusahaan dalam melepas sahamnya ke publik tergantung dari faktor eksternal. Namun, Blibli kembali memasukkan pernyataannya beberapa waktu lalu. \"Namun beberapa waktu lalu kelihatannya memasukkan lagi,\" ucapnya. Sayangnya, Inarno tidak dapat menyebut terkait kisaran harga saham IPO Blibli. Sebab, hal tersebut tergantung dari proses book building. \"Berapa besarnya dan juga harga IPO-nya itu menunggu dari book building-nya. Jadi kita nggak bisa memasukkan berapa besarnya, berapa harganya itu tergantung dari book building,\" pungkasnya.", "url": "https://www.cnbcindonesia.com/market/20221003153829-17-376840/perhatian-e-commerce-djarum-group-blibli-siap-ipo"},
{"title": "Breaking News: Minyak Mentah Memanas, Harganya Melejit 5%!", "timestamp": "03 October 2022 15:07", "author": "Robertus Andrianto, CNBC Indonesia", "article": "Harga minyak mentah dunia melejit nyaris 5% lebih. Penyebabnya adalah potensi pengurangan produksi oleh OPEC+. Pada Senin (10/3/2022) pukul 14.58 WIB harga minyak jenis atau West Texas Intermediate (WTI) melonjak 4,7% ke US$83,22 per barel. Sedangkan\u00a0mentah Brent tercatat US$88,96 per barel, naik 1,15%   ADVERTISEMENT SCROLL TO RESUME CONTENT Perkumpulan negara-negara produsen minyak OPEC+ akan mempertimbangkan pengurangan produksi minyak lebih dari satu juta barel per hari (bph) minggu depan, menurut sumber OPEC mengatakan kepada (2/10/2022). Ini akan menjadi langkah terbesar sejak pandemi COVID-19 ke mengatasi kelemahan pasar minyak. Pertemuan OPEC+ akan berlangsung pada 5 Oktober mendatang. Penurunan harga minyak dan bulan-bulan volatilitas pasar yang parah yang mendorong produsen utama OPEC+, Arab Saudi, untuk mengatakan bahwa kelompok tersebut dapat memangkas produksi. OPEC+, yang menggabungkan negara-negara OPEC dan sekutunya seperti Rusia, telah menolak menaikkan produksi untuk menurunkan harga minyak meskipun ada tekanan dari konsumen utama, termasuk Amerika Serikat, untuk membantu ekonomi global. Pekan lalu, sebuah sumber mengatakan Moskow berharap OPEC+ dapat memotong 1 juta bph atau 1% dari pasokan global. Itu akan menjadi pemotongan terbesar sejak 2020 ketika OPEC+ mengurangi produksi dengan rekor 10 juta bph karena permintaan turun karena pandemi Covid-19. Kelompok ini menghabiskan dua tahun berikutnya untuk memecahkan rekor tersebut. Analis dan pengamat OPEC seperti UBS dan JP Morgan telah menyarankan pemotongan sekitar 1 juta bph sehingga dapat membantu menahan penurunan harga. \"Minyak US$90 tidak dapat dinegosiasikan untuk kepemimpinan OPEC+, oleh karena itu mereka akan bertindak untuk menjaga harga dasar ini,\" kata Stephen Brennock dari pialang minyak PVM.", "url": "https://www.cnbcindonesia.com/market/20221003145744-17-376821/breaking-news-minyak-mentah-memanas-harganya-melejit-5"},
{"title": "Rupiah Tembus Rp 15.300/US$, Momok Ketakutan Jokowi Nyata?", "timestamp": "03 October 2022 15:13", "author": "Putu Agus Pransuamitra, CNBC Indonesia", "article": "Nilai tukar rupiah melemah melawan dolar Amerika Serikat (AS) pada perdagangan Senin (3/10/2022) hingga menembus Rp 15.300/US$. Inflasi yang semakin meninggi memberikan tekanan bagi Mata Uang Garuda. Melansir data Refinitiv, rupiah membuka perdagangan dengan melemah 0,03% ke Rp 15.230/US$. Setelahnya rupiah terpuruk hingga Rp 15.305/US$, merosot 0,52%. Di penutupan perdagangan, rupiah berada di Rp 15.300/US$, melemah 0,49% di pasar spot. Level tersebut merupakan yang terlemah\u00a0sejak 29 April 2020. ADVERTISEMENT SCROLL TO RESUME CONTENT Badan Pusat Statistik (BPS) hari ini juga mengumumkan jika inflasi secara tahunan ( /yoy) pada September menembus 5,95%. \"Inflasi ini tertinggi sejak Desember 2014,\" kata Kepala BPS Margo Yuwono dalam konferensi pers, Senin (3/10/2022). Inflasi tinggi pada September juga sesuai dengan perkembangan inflasi di era Presiden Joko Widodo atau Jokowi Sejak menjabat presiden pada Oktober 2014 hingga Agustus 2022, inflasi Indonesia hanya dua kali melewati 1% yakni pada 1,50% (mtm) pada November 2014 dan 2,46% (mtm) pada Desember 2014. Inflasi periode tersebut melonjak setelah Jokowi menaikkan harga BBM pada 18 November 2014.Setelah periode inflasi tinggi November dan Desember 2014, Indonesia tidak pernah mengalami inflasi di atas 1% hingga Agustus tahun ini. Inflasi tinggi merupakan masalah utama di dunia saat ini. Presiden Jokowi berulangkali mengungkapkan bahwa inflasi adalah momok terbesar saat ini oleh semua negara di dunia. Pasalnya, banyak negara di dunia yang tersandung akan inflasi tinggi. Inflasi ini dipicu oleh kenaikan harga pangan hingga energi, dan perang Rusia-Ukraina yang tak pasti kapan berakhir. \"Pertama yang ingin saya sampaikan momok pertama semua negara saat ini inflasi, inflasi semua negara biasanya hanya 1% sekarang 8%, lebih dari 10% dan bahkan ada lebih dari 80 persen, ada 5 negara,\" kata Jokowi saat Pengarahan Presiden kepada seluruh Menteri/Kepala Lembaga, Kepala Daerah, Pangdam dan Kapolda di JCC, Jakarta, Kamis (29/9/2022). Inflasi yang tinggi memang bisa menimbulkan masalah besar. Daya beli masyarakat bisa tergerus yang pada akhirnya menekan pertumbuhan ekonomi. Jika berlangsung lama, maka risiko stagflasi pun menghantui. Rilis data inflasi tersebut menutupi kabar baik dari dalam negeri. S&P Global hari ini melaporkan aktivitas manufaktur Indonesia yang dilihat dari purchasing manager's index (PMI) mengalami peningkatan signifikan menjadi 53,7 September lalu, dari bulan sebelumnya 51,7. PMI menggunakan angka 50 sebagai ambang batas. Di atasnya adalah ekspansi, di bawahnya berarti kontraksi. Sektor manufaktur Indonesia kini sudah berekspansi dalam 13 bulan beruntun, dan menjadi kabar baik saat negara-negara lain terutama di Barat menghadapi isu resesi. \"Survei terbaru konsisten dengan perkembangan terkuat kesehatan sektor manufaktur Indonesia sejak Januari. Kondisi demand yang kuat membantu membawa pesanan baru ke level tertinggi dalam hampir satu tahun terakhir,\" kata Laura Denman, ekonom di S&P Global Market Intelligence.", "url": "https://www.cnbcindonesia.com/market/20221003150834-17-376826/rupiah-tembus-rp-15300-us--momok-ketakutan-jokowi-nyata"},
{"title": "Pasar Obligasi 'Happy' dengan Data Inflasi", "timestamp": "03 October 2022 14:10", "author": "Muhammad Maruf, CNBC Indonesia", "article": "Pasar surat berharga negara (SBN) merespon positif rilis data inflasi bulan September yang diumumkan Badan Pusat Statistik pukul 11.00 WIB tadi. Data inflasi yang sesuai ekspektasi pasar itu membuat investor berburu seri tenor panjang, merefleksikan kepercayaan atas prospek ekonomi ke depan. ADVERTISEMENT SCROLL TO RESUME CONTENT", "url": "https://www.cnbcindonesia.com/market/20221003140642-17-376802/pasar-obligasi-happy-dengan-data-inflasi"},
{"title": "Efek Rupiah Melemah,  Biaya Produksi Industri Tekstil Naik 5%", "timestamp": "03 October 2022 15:06", "author": "CNBC Indonesia TV, CNBC Indonesia", "article": "Asosiasi Pertekstilan Indonesia (API) mencatat adanya kenaikan biaya energi 10% imbas penyesuaian harga BBM serta kenaikan biaya pembelian bahan baku yang disebabkan pelemahan Rupiah. Diproyeksi kondisi ini bisa mendorong kenaikan biaya produksi 5% serta beban kenaikan UMR 2023 sehingga harga jual bisa meningkat 7-8%. Seperti apa dampak kenaikan harga energi hingga pelemahan Rupiah terhadap industri tekstil? Selengkapnya simak dialog Anneke Wijaya dengan VP for Industry and Regional Research Bank Mandiri, Dendi Ramdani dan Wakil Ketua Asosiasi Pertekstilan Indonesia (API), Ian Syarif dalam Power Lunch, CNBC Indonesia (Senin, 03/10/2022)", "url": "https://www.cnbcindonesia.com/market/20221003135507-19-376797/efek-rupiah-melemah-biaya-produksi-industri-tekstil-naik-5"},
{"title": "Sederet PR Indonesia Hadapi Awan Gelap Ekonomi Global 2023 ", "timestamp": "03 October 2022 15:52", "author": "CNBC Indonesia TV, CNBC Indonesia", "article": "- Presiden Jokowi mengungkapkan kekhawatirannya terhadap potensi ekonomi global di 2023 akan semakin gelap di tengah gonjang-ganjing dunia imbas kenaikan inflasi dan suku bunga yang diikuti oleh krisis energi dan pangan dunia. Ekonom Bank Mandiri, Irman Faiz memandang kondisi fundamental ekonomi Indonesia diharapkan cukup kuat menghadapi goncangan global ditopang kinerja ekspor dan surplus neraca dagang. seperti apa potensi RI menghadapi stagflasi dan resesi menghadapi ekonomi gelap 2023? Selengkapnya simak dialog Savira Wardoyo dengan Ekonom INDEF, Eisha Maghfiruha serta Ekonom IPB, Aristo Purboadji dan Ekonom Bank Mandiri, Faisal Rachman di Profit, Indonesia (Senin, 03/10/2022)", "url": "https://www.cnbcindonesia.com/market/20221003122755-19-376765/sederet-pr-indonesia-hadapi-awan-gelap-ekonomi-global-2023"},
{"title": "Inflasi Nyaris Sentuh 6%, IHSG Merana Lagi", "timestamp": "03 October 2022 15:49", "author": "Chandra Dwi Pranata, CNBC Indonesia", "article": "tersebut ditutup melemah 0,44% ADVERTISEMENT SCROLL TO RESUME CONTENT", "url": "https://www.cnbcindonesia.com/market/20221003153933-17-376835/inflasi-nyaris-sentuh-6-ihsg-merana-lagi"},
{"title": "Era Suku Bunga Tinggi, Saham Properti Ini Malah Naik 34,88%", "timestamp": "03 October 2022 13:17", "author": "Aulia Mutiara Hatia Putri, CNBC Indonesia", "article": "Indeks Harga Saham Gabungan (IHSG) berakhir di melemah pada penutupan perdagangan sesi I Senin (3/10/2022) pasca rilis data inflasi Indonesia periode September melonjak dan mencapai angka tertinggi sejak Desember 2014. Nilai perdagangan tercatat turun ke Rp 6,03 triliun dengan melibatkan lebih dari 12 miliar saham yang berpindah tangan 733 kali. ADVERTISEMENT SCROLL TO RESUME CONTENT Sementara, Mayoritas", "url": "https://www.cnbcindonesia.com/market/20221003120820-17-376753/era-suku-bunga-tinggi-saham-properti-ini-malah-naik-3488"},
[...]

您可以在此处找到Scrapy文档:https://docs.scrapy.org/en/latest/

相关问题