无法从Google搜索结果中获取所有粗体<em>标记

时间:2018-05-21 05:19:32

标签: python selenium web-scraping beautifulsoup

所以我使用这段代码来获取: -

  • Google搜索结果中的所有粗体/标签
  • 里面的所有文字 每个搜索结果链接

但我无法取得所有这些。它失败了一些标签以及整个文本没有意义,因为我拉动了标签的所有内容。

import requests
import json
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36'}


from selenium import webdriver
browser=webdriver.Firefox()
link=("https://www.google.co.in/search?rlz=1C1CHBD_enIN789IN790&ei=P4b9Wp4MxPP1A67gk-gI&q=%28%27United+States%27%2C+%27US+DOL+OASAM+-+OCIO%27%2C+%27200+CONSTITUTION+AVE+NW%27%29&oq=%28%27United+States%27%2C+%27US+DOL+OASAM+-+OCIO%27%2C+%27200+CONSTITUTION+AVE+NW%27%29&gs_l=psy-ab.3...44692.45689.0.46041.0.0.0.0.0.0.0.0..0.0....0...1c.1.64.psy-ab..0.0.0....0.DqJsrKbp_Js")
browser.get(link)
s=requests.get(browser.current_url, headers=headers)
soup =BeautifulSoup(s.content,'html.parser')


for i in soup.findAll("div", {"class": "s"}):
    for k in i.findAll("span",{"class":"st"}):
        print (k.text)

必需的样品输出:

  

OASAM联系人。 OASAM国家和地区办事处信息。国家&gt;办公室:总部。助理国务卿办公室&gt;管理美国劳工部200宪法大道,N.W ..套房S-> 2203。华盛顿特区20210.电话:(202)693-4040。传真:(202)693-4055。生意......

以上代码无法提取浏览器中显示的所有文字。只打印部分文字。

=============================================== ============================

同样,当试图从搜索结果中提取所有粗体文本时,我没有得到所有粗体文本。即使它们位于标签

所定义的相同附近,但很多都没有被取出
for i in browser.find_elements_by_class_name("st"):
    for k in (i.find_elements_by_tag_name("em")):
        print (k.text)
    print ("=====") 

对于第一个链接,它应该打印(必需的样本输出): -

  

OASAM

     

OASAM

     

     

U.S。劳工部,新南威尔士州宪法大道200号,

1 个答案:

答案 0 :(得分:0)

使用Xpath选择所有粗体文本。

.//*[@id='rso']/div[1]/div/div[3]/div/div/h3/a

以及

内的所有文字
 .//*[@id='rso']/div[1]/div/div[1]/div/div/div[1]/div/span