質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

「SyntaxError: invalid syntax」の解決方法を知りたいです!【プログラミング初心者/Python/スクレイピング】

yamayamahi
yamayamahi

総合スコア0

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

1評価

2クリップ

46閲覧

投稿2020/04/19 02:03

編集2022/01/12 10:58

##前提
プログラミング初心者です。
日経の人事ニュースをスクレイピングしたいのですが、
SyntaxError: invalid syntax エラーが出てしまうため、
解決方法を教えていただいても良いでしょうか?

*全角だった部分は半角に直しました

##聞きたいこと
「SyntaxError: invalid syntax」の解決方法
##実現したいこと
日経の異動情報の
記事一覧ページ( https://www.nikkei.com/news/jinji/hatsurei/ )の各記事(30記事/ページ)に
上から順に一つずつアクセスし、必要情報(企業名・更新日・詳細の3項目)をスクレイピングする操作を、
一覧ページの1ページ目から4ページ目まで(4ページ×30記事=120記事)実行したい。
##該当のサイトURL
▼記事一覧ページ
https://www.nikkei.com/news/jinji/hatsurei/
▼各記事の例
https://www.nikkei.com/article/DGXMZO58199080X10C20A4EA4000/

##エラーメッセージ

SyntaxError: invalid syntax

該当のソースコード

python

import requests from bs4 import BeautifulSoup import time import numpy as np import pandas as pd all_news = [] for num in range(0,3): #「記事一覧ページのURL」を定義 if num == 0: url = "https://www.nikkei.com/news/jinji/hatsurei" else: url = "https://www.nikkei.com/news/jinji/hatsurei/?bn="+str(num*30+1) print(url) #BeautifulSoup(スクレイピングツール)を使ってsoupを定義 soup = BeautifulSoup(requests.get(url).content, 'html.parser') #「m-articleTitle_text」クラスのh3を全て見つけて、「titles」として定義 titles = soup.find_all('h3', {'class': 'm-articleTitle_text'}) for igt in titles: #news_listの箱を作る news_list = [] #title_とurl_をそれぞれ定義 title_ = igt.text url_ = "https://www.nikkei.com" + igt.a.get("href") news_list.append(title_) news_list.append(url_) #記事一覧ページから、各記事(url_)にアクセスし、必要情報を取ってきて、news_listに追加 soup = BeautifulSoup(requests.get(url_).content, 'html.parser') #必要情報① 企業名:article_title_ article_title = soup.find_all('h1', {'class': 'cmn-article_title cmn-clearfix'}) for igt in article_title: article_title_ = igt.text news_list.append(article_title_) #必要情報② 日付:dd_ dd = soup.find_all('dd', {'class': 'cmnc-publish'}) for igt in dd: dd_ = igt.text news_list.append(dd_) #必要情報③ 詳細:detail_ detail = soup.find_all('ul', {'class': 'cmn-announce_personnel JSID_key_fonttxt m-streamer_medium'}) for igt in detail: detail_ = igt.text news_list.append(detail_) #出来上がったnews_listをall_newsの箱に代入していく all_news.append(news_list) time.sleep(1) print(all_news) #DataFrame df = pd.DataFrame(all_news[2:], columns = ["title","url"]) df.to_csv("nikkei_idou_news.csv",index = None)

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。