beautifulsoupで指定した文字列のhrefを含むタグ内の文字列を返したい。
pythonでgoogle検索の結果のなかから最初のwikipediaの項目を調べようとしています。
最終的には検索するタグの中身の『$$$$ - Wikipedia』ような文字列を取得したいです。
wikihref = soup.find('a', href=re.compile('^http://ja.wikipedeia.org/'))
としても,wikihrefの結果がNoneになってしまいます。stringを要求しているので、結果としてNoneに対してstringが対応していないとattirbutionerrorが出てしまいます。
links = soup.find_all('a')
for link in links:
if 'href' in link.attrs:
#if link.text
print(link.text, 'ja.wikipedia.org', link.attrs['href'])
こちらのコードだと、ja.wikipedia.orgを含むすべてのタグが表示されるのですが、一つだけというわけにはいかないようです:
下記がコードになります。よろしくお願いいたします。
# -*- coding:utf-8 -*-
import io, sys, urllib
import requests
from bs4 import BeautifulSoup
import codecs
import GoogleSearch_List as R
import re
import json
base_url = 'https://www.google.com.hk/search?q='
suffix_url = '+wikipedia&ie=UTF-8'
url_list = ['$$$$']
for i in range(len(url_list)):
target_url = base_url + url_list[i] + suffix_url
target_html = requests.get(target_url).text
soup = BeautifulSoup(target_html, 'html.parser')
#ページタイトル
#print(soup)
links = soup.find_all('a')
for link in links:
if 'href' in link.attrs:
#if link.text
print(link.text, 'url?q=https://ja.wikipedia.org', link.attrs['href'])
wikihref = soup.find('a', href=re.compile('^http://ja.wikipedeia.org/'))
print(wikihref)