我正在寻找一种方法来检索该网站的广告 URL。 http://www.quiltingboard.com/resources/
我想要做的可能是编写一个脚本来不断刷新页面并获取广告 URL。
有什么建议吗?
我正在寻找一种方法来检索该网站的广告 URL。 http://www.quiltingboard.com/resources/
我想要做的可能是编写一个脚本来不断刷新页面并获取广告 URL。
有什么建议吗?
单靠 BeautifulSoup 并不能解决问题。广告是通过 javascript 注入的(它们是双击广告)。
您的选择是:
如果你留在纯 python 中,你需要:
这些方法只会为您提供处理转化跟踪的双击网址。如果您想找出他们重定向到的位置,您需要打开这些 url 以发现他们的重定向。
我会检查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 ']}
很酷。
Beautiful Soup正是您想要的。
我假设您正在谈论屏幕顶部的文字广告。
您将无法为此直接使用 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']