我想使用像美丽的汤(python)这样的HTML解析器来获取特定div的内容,通过运行python脚本将其中的所有数据存储在我的本地服务器中,该脚本将由cron在我的Web服务器上定期执行
此外,我需要能够在我的网站上显示与网页中显示的内容完全相同的内容。
如果div的内容仅仅是文本,那么它很容易,但它是文本和图像的组合。 虽然偶尔会有swf文件,但我不想导入它们。
让我们说有问题的div被称为' cont'。 最好的方法是什么?
答案 0 :(得分:1)
幸运的是,我有一只能完全按照你需要做的蜘蛛。
from soup import BeautifulSoup as bs
from scrapy.http import Request
from scrapy.spider import BaseSpider
from hn.items import HnItem
class HnSpider(BaseSpider):
name = 'hn'
allowed_domains = []
start_urls = ['http://news.ycombinator.com']
def parse(self, response):
if 'news.ycombinator.com' in response.url:
soup = bs(response.body)
items = [(x[0].text, x[0].get('href')) for x in
filter(None, [
x.findChildren() for x in
soup.findAll('td', {'class': 'title'})
])]
for item in items:
print item
hn_item = HnItem()
hn_item['title'] = item[0]
hn_item['link'] = item[1]
try:
yield Request(item[1], callback=self.parse)
except ValueError:
yield Request('http://news.ycombinator.com/' + item[1], callback=self.parse)
yield hn_item
请参阅Github link以了解详情。