使用python示例进行Web抓取

时间:2012-10-19 17:10:06

标签: python web-scraping

有人可以告诉我代码吗,让我们说每30分钟从谷歌获取Recent News并使用python在我的网站上显示它们?

我观看了44个视频教程并学习了基础知识。

一个例子是:

import urllib2
from BeautifulSoup import BeautifulSoup
# or if your're using BeautifulSoup4:
# from bs4 import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://www.timeanddate.com/worldclock/astronomy.html?n=78').read())

for row in soup('table', {'class' : 'spad'})[0].tbody('tr'):
  tds = row('td')
  print tds[0].string, tds[1].string
  # will print date and sunrise

但像我这样的初学者无法理解这段代码如何帮助我解决上面的例子。

2 个答案:

答案 0 :(得分:3)

这是一个简单的例子,每半小时从谷歌新闻中获取所有主要标题并打印出来。至于在您的网站上显示它们取决于它是如何实现的。例如,如果它从MYSQL数据库获取内容,则每次下载新标题时都可以轻松地使该脚本更新数据库。

import mechanize
import cookielib
import lxml.html as lh
import time  

br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

while True:
    r = br.open('https://news.google.com/')
    html = r.read()
    doc=lh.fromstring(html)
    for i in doc.xpath('.//*[@class="esc-lead-article-title"]'):
        print i.text_content()
    time.sleep(1800)

答案 1 :(得分:1)

每当你看到一个你不熟悉的东西的导入声明时,做一个快速的谷歌搜索总是明智的。我产生了

BeautifulSoup。在这里,您可以阅读称为美丽汤的python库的文档。

UrlLib2这是用于打开网址的库

阅读文档,它应该可以帮助您了解如何利用这个小小的片段:)。