【问题标题】:How to Trace Particular Content in Web Page using Python in Certain Time Period?如何在特定时间段内使用 Python 跟踪网页中的特定内容?
【发布时间】:2016-05-20 07:52:15
【问题描述】:

我想监视某些网页中存在的某些内容更改。我想使用任何脚本或浏览器插件本身在日常基础上做同样的事情......

例如,如果根据我的查询,如果某些网页的特定内容发生某些更改,我想在不订阅他们的订阅的情况下通知他们。

  • 我想在每天符合我的条件时收到通知..
  • 他们有任何可用的脚本或浏览器插件吗?
  • 我可以使用 python 脚本来跟踪可用的更改吗...
  • 我怎样才能做到这一点?

【问题讨论】:

    标签: javascript python web-services web browser


    【解决方案1】:

    您可以简单地基于 urllib/requests/Beautiful soup 模块编写 Python 脚本。

    您要做的是编写一个函数来解析网站的所需部分并(在循环中执行)检查它是否符合您的要求,如果不符合则退出循环并在一段时间后运行再次循环(您可以使用 time 模块的 time.sleep() 函数执行此操作)并一次又一次地检查。

    def parse(url):
        #extract the content you want
        while(#condition):
                if condition met:
                    #do this
                else:
                    #do this
               time.sleep(#time after that you want to recheck)
    

    就是这样,你就完成了。不要忘记导入模块! :)

    【讨论】:

    • 感谢@Sajjan Kumar .. 让我回来,一旦我完成了代码。
    • 告诉我你有什么!
    • stackoverflow.com/questions/29708484/… 检查此链接...这是使用称为 webdriver 使用 selenium 和 phantomjs 的东西完成
    • 是的,这可以使用 selenium webdriver 模块和浏览器(主要是 phantomjs)来完成。这主要用于自动化网络内容和测试目的。随着您搜索的更多,您还会发现其他模块。因此,请检查您对模块的熟悉程度并继续编写代码。您可以更具体地解决您的问题!
    • @MohideenibnMohammed 如果你得到解决方案,然后将其标记为已关闭或让我知道,让我看看我是否可以提供帮助。
    【解决方案2】:

    这是我的代码,我如何从一个站点中删除表格。在该站点中,他们没有在表中定义 id 或 class,因此您无需放置任何内容。如果 id 或 class 意味着只使用 html.xpath('//table[@id=id_val]/tr') 而不是 html.xpath('//table/tr')

    import time
    from lxml import etree
    import urllib
    while True:
        time.sleep(60) # for 1 minute time interval
        #time.sleep(86400) # for 1 day time interval
        web = urllib.urlopen("http://www.yoursite.com/")
        html = etree.HTML(web.read())
        tr_nodes = html.xpath('//table/tr')
        td_content = [tr.xpath('td') for tr in tr_nodes  if [td.text for td in tr.xpath('td')][2] == 'Chennai' or [td.text for td in tr.xpath('td')][2] == 'Across India'  or 'Chennai' in [td.text for td in tr.xpath('td')][2].split('/') ]
        main_list = []
        for i in td_content:
            if i[5].text == 'Freshers' or  'Freshers' in i[5].text.split('/') or  '0' in i[5].text.split(' '):
                sub_list = [td.text for td in i]
                sub_list.insert(6,'http://yoursite.com/%s'%i[6].xpath('a')[0].get('href'))
                main_list.append(sub_list)
        print 'main_list',main_list
    

    【讨论】:

      猜你喜欢
      • 2014-05-23
      • 1970-01-01
      • 2020-10-20
      • 2013-02-16
      • 1970-01-01
      • 2014-06-02
      • 1970-01-01
      • 2017-08-03
      • 2020-08-09
      相关资源
      最近更新 更多