【问题标题】:Fetching name and email from a web page [duplicate]从网页中获取姓名和电子邮件[重复]
【发布时间】:2015-09-30 12:12:11
【问题描述】:

我正在尝试从Link 获取数据。我想从网页中获取名称/电子邮件/位置/等内容并将其粘贴到网页中。当我运行此代码时,我总是为它编写代码,它只存储一个空白列表。

请帮我从网页上复制这些数据。

我想从此链接中获取公司名称、电子邮件、电话号码并将这些内容放入一个 excel 文件中。我想对网站的所有页面做同样的事情。我有逻辑来获取浏览器中的链接并在它们之间切换。我无法从网站上获取数据。任何人都可以为我编写的代码提供增强功能吗?

下面是我写的代码:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
from lxml import html
import requests
import xlwt

browser = webdriver.Firefox() # Get local session of firefox

# 0 wait until the pages are loaded
browser.implicitly_wait(3) # 3 secs should be enough. if not, increase it

browser.get("http://ae.bizdirlib.com/taxonomy/term/1493") # Load page
links = browser.find_elements_by_css_selector("h2 > a")

#print link
for link in links:
    link.send_keys(Keys.CONTROL + Keys.RETURN)
    link.send_keys(Keys.CONTROL + Keys.PAGE_UP)
#tree = html.fromstring(link.text)
    time.sleep(5)

companyNameElement = browser.find_elements_by_css_selector(".content.clearfix>div>fieldset>div>ul>li").text 
companyName = companyNameElement 
print companyNameElement

Html 代码如下

<div class="content">
<div id="node-946273" class="node node-country node-promoted node-full clearfix">
<div class="content clearfix">
<div itemtype="http://schema.org/Corporation" itemscope="">
<fieldset>
<legend>Company Information</legend>
<div style="width:100%;">
<div style="float:right; width:340px; vertical-align:top;">
<br/>
<ul>
<li>
<strong>Company Name</strong>
: 
<span itemprop="name">Sabbro - F.Z.C</span>
</li>
</ul>

当我使用它时,它给了我一个错误 list' object has no attribute 'text'。有人可以帮助我增强代码并使其正常工作。我有点像在这个问题上永远卡住了。

【问题讨论】:

  • 当您想为已在 SO 上发布的问题添加信息时,您需要编辑原始问题。发布新问题是不行的。
  • @Louis:对不起,堆栈溢出是个新手……不知道……现在已经完成了。下次会注意的。

标签: python excel selenium selenium-webdriver web-scraping


【解决方案1】:
companyNameElement = browser.find_elements_by_css_selector(".content.clearfix>div>fieldset>div>ul>li").text 
companyName = companyNameElement 
print companyNameElement

find_elements_by... 返回一个列表,您可以访问该列表的第一个元素或使用等效的 find_element_by... 方法来获取第一个元素。

【讨论】:

  • 我现在试图获取该元素,但现在它说无法找到该元素。我只是想找到一些元素,如公司名称/电子邮件/等。并将其粘贴到excel中。你能帮我在网站上找到确切的元素吗?我得到相同的元素只是为了寻求更多说明。
  • 请发布您试图从中找到公司名称/电子邮件等的 html 代码。
  • @igniteram : 我已经通过编辑问题添加了 html 代码。
猜你喜欢
  • 2021-05-19
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 2015-02-07
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多