0

我正在寻找一种方法来检索该网站的广告 URL。 http://www.quiltingboard.com/resources/

我想要做的可能是编写一个脚本来不断刷新页面并获取广告 URL。

有什么建议吗?

4

4 回答 4

1

单靠 BeautifulSoup 并不能解决问题。广告是通过 javascript 注入的(它们是双击广告)。

您的选择是:

  • 在页面加载后 10-15 秒编写类似 selenium 的脚本来查找 url
  • 如果你留在纯 python 中,你需要:

    1. 发出初始请求以用漂亮的汤进行解析
    2. 弄清楚谷歌将用 javascript 注入什么
    3. 发出二次请求以双击 iframe 或有效负载 url

这些方法只会为您提供处理转化跟踪的双击网址。如果您想找出他们重定向到的位置,您需要打开这些 url 以发现他们的重定向。

于 2012-11-04T23:28:00.883 回答
0

我会检查Scrapy

这是一个网络抓取库。它使您可以很容易地从网站上抓取和抓取信息。上面的链接指向官方教程,其中包含大量示例代码,包括跨越您需要的内容的内容。

根据网站简单抓取:

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector

from tutorial.items import DmozItem

class DmozSpider(BaseSpider):
   name = "dmoz"
   allowed_domains = ["dmoz.org"]
   start_urls = [
       "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
       "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
   ]

   def parse(self, response):
       hxs = HtmlXPathSelector(response)
       sites = hxs.select('//ul/li')
       items = []
       for site in sites:
           item = DmozItem()
           item['title'] = site.select('a/text()').extract()
           item['link'] = site.select('a/@href').extract()
           item['desc'] = site.select('text()').extract()
           items.append(item)
       return items

这是使用库来抓取链接的一个小例子,它产生:

[dmoz] 调试:从 <200 http://www.dmoz.org/Computers/Programming/Languages/Python/Books/ > {'desc': [u' - David Mertz; 艾迪生卫斯理。正在预订,全文,ASCII 格式。要求反馈。[作者网站, Gnosis Software, Inc.\n], 'link': [u'http://gnosis.cx/TPiP/'], 'title': [u'Text Processing in Python']} [dmoz]调试:取自 <200 http://www.dmoz.org/Computers/Programming/Languages/Python/Books/> {'desc': [u' - Sean McGrath; Prentice Hall PTR,2000,ISBN 0130211192,有 CD-ROM。快速构建 XML 应用程序的方法,Python 教程,DOM 和 SAX,新的 Pyxie 开源 XML 处理库。[Prentice Hall PTR]\n'], 'link': [u'http://www.informit.com/store/product.aspx?isbn=0130211192'], 'title': [u'使用 Python 处理 XML ']}

很酷。

于 2012-11-04T23:33:54.983 回答
0

Beautiful Soup正是您想要的。

于 2012-11-04T23:15:47.627 回答
0

我假设您正在谈论屏幕顶部的文字广告。

您将无法为此直接使用 Python 解析库,因为这些链接是在页面加载后使用 JavaScript 加载的。

一种选择是使用像selenium这样的工具,它允许您在浏览器中加载页面。完成后,您可以使用 BeautifulSoup 扫描您正在寻找的链接:

from bs4 import BeautifulSoup

soup = BeautifulSoup(html)    
ads_div = soup.find('div', attrs={'class': 'ads'})
if ads_div:
    for link in ads_div.find_all('a'):
        print link['href']
于 2012-11-04T23:17:28.530 回答