小编Mar*_*arc的帖子

Python:如何使用feedparser和etags检查RSS更新

我正在尝试跳过未使用feedparser和etags修改的RSS源.遵循文档指南:http://pythonhosted.org/feedparser/http-etag.html

import feedparser

d = feedparser.parse('http://www.wired.com/wiredscience/feed/')
d2 = feedparser.parse('http://www.wired.com/wiredscience/feed/', etag=d.etag)

print d2.status
Run Code Online (Sandbox Code Playgroud)

这输出:

200
Run Code Online (Sandbox Code Playgroud)

这个脚本不应该返回304吗?我的理解是,当RSS源更新时,etag会发生变化,如果匹配,那么我应该得到304.

为什么我没有得到我预期的结果?

python rss etag feedparser http-headers

11
推荐指数
1
解决办法
3253
查看次数

使用Jquery单击时使链接变为粗体

我有两个用于排序的链接.一个由Make和一个由Model(升序和降序两者).

现在我拥有它,所以当你加载页面时,你只能看到Model Descending和Make descending.如果你要点击让我们说Model Descending它会隐藏该链接并显示Model Ascending的链接.

问:我想点击它后,将当前选中的列进行排序.并且一旦选择了另一列,就解压缩并重置为原始链接.

HTML:

<a href='#' id='modelD'>Model D</a>
<a href='#' id='modelA'>Model A</a>
<a href='#' id='makeD' >Make D</a>
<a href='#' id='makeA' >Make A</a>?
Run Code Online (Sandbox Code Playgroud)

JQUERY:

$('#modelA').hide();
$('#makeA').hide();

$('#modelD').click(function(){
    $('#modelD').hide();
    $('#modelA').show();
});

$('#modelA').click(function(){
    $('#modelA').hide();
    $('#modelD').show();  
});

$('#makeD').click(function(){
    $('#makeD').hide();
    $('#makeA').show();

});

$('#makeA').click(function(){
    $('#makeA').hide();
    $('#makeD').show();
});
Run Code Online (Sandbox Code Playgroud)

这是代码的小提琴. http://jsfiddle.net/JKFKC/1/

任何帮助表示赞赏.谢谢.

javascript css jquery

6
推荐指数
1
解决办法
5445
查看次数

如何正确使用规则,restrict_xpaths使用scrapy来抓取和解析URL?

我正在尝试编写爬行蜘蛛来抓取网站的RSS源,然后解析文章的元标记.

第一个RSS页面是显示RSS类别的页面.我设法提取链接,因为标记位于标记中.它看起来像这样:

        <tr>
           <td class="xmlLink">
             <a href="http://feeds.example.com/subject1">subject1</a>
           </td>   
        </tr>
        <tr>
           <td class="xmlLink">
             <a href="http://feeds.example.com/subject2">subject2</a>
           </td>
        </tr>
Run Code Online (Sandbox Code Playgroud)

单击该链接后,它会为您显示该RSS类别的文章,如下所示:

   <li class="regularitem">
    <h4 class="itemtitle">
        <a href="http://example.com/article1">article1</a>
    </h4>
  </li>
  <li class="regularitem">
     <h4 class="itemtitle">
        <a href="http://example.com/article2">article2</a>
     </h4>
  </li>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,如果我使用标记我可以再次获取xpath的链接,我希望我的抓取工具转到该标记内的链接并为我解析元标记.

这是我的抓取代码:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from tutorial.items import exampleItem


class MetaCrawl(CrawlSpider):
    name = 'metaspider'
    start_urls = ['http://example.com/tools/rss'] # urls from which the spider will start crawling
    rules = [Rule(SgmlLinkExtractor(restrict_xpaths=('//td[@class="xmlLink"]')), follow=True),
        Rule(SgmlLinkExtractor(restrict_xpaths=('//h4[@class="itemtitle"]')), callback='parse_articles')]

    def parse_articles(self, response):
        hxs = …
Run Code Online (Sandbox Code Playgroud)

python xpath web-crawler scrapy

5
推荐指数
1
解决办法
9545
查看次数

如何存储Scrapy抓取的URL?

我有一个网络爬虫,可以在网页上爬取新闻故事。

我知道如何使用 XpathSelector 从页面中的元素中抓取某些信息。

但是我似乎无法弄清楚如何存储刚刚抓取的页面的 URL。

class spidey(CrawlSpider):
    name = 'spidey'
    start_urls = ['http://nytimes.com'] # urls from which the spider will start crawling
    rules = [Rule(SgmlLinkExtractor(allow=[r'page/\d+']), follow=True), 
        # r'page/\d+' : regular expression for http://nytimes.com/page/X URLs
        Rule(SgmlLinkExtractor(allow=[r'\d{4}/\d{2}/\w+']), callback='parse_articles')]
        # r'\d{4}/\d{2}/\w+' : regular expression for http://nytimes.com/YYYY/MM/title URLs
Run Code Online (Sandbox Code Playgroud)

我想存储通过这些规则的每个链接。

我需要向 parse_articles 添加什么才能将链接存储在我的项目中?

def parse_articles(self, response):
    item = SpideyItem()
    item['link'] = ???
    return item
Run Code Online (Sandbox Code Playgroud)

python web-crawler scrapy

4
推荐指数
1
解决办法
1831
查看次数

转换字符串在Python中插入MySQL DB日期列日期

我有一个不寻常的日期字符串,我想插入MySQL数据库.

date = 'Thu, 14 Mar 2013 13:33:07 -0400'
Run Code Online (Sandbox Code Playgroud)

这是insert语句

self.cursor.execute("INSERT INTO table1 (`DATE`)VALUES (%s);",(date))
Run Code Online (Sandbox Code Playgroud)

当我这样做时它会在数据库中显示如下:

0000-00-00 00:00:00
Run Code Online (Sandbox Code Playgroud)

即使我手动输入SQL,它也会以同样的方式显示出来.

如何将日期字符串转换为插入的mysql可读日期?

python mysql date

4
推荐指数
1
解决办法
5764
查看次数

文档根目录中的远程Git存储库

我试图在我的网站上使用git.该网站在我们的网络服务器上.

mkdir /home/website/public_html
cd /home/website/public_html
git --bare init
Run Code Online (Sandbox Code Playgroud)

然后我转到本地机器并切换到我的文件目录

git remote rm origin
git remote add origin git@server.com:/home/website/public_html
git push origin master
Enter passphrase for key '/c/Users/git/.ssh/id_rsa':
Counting objects: 6, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 460 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@server.com:/home/website/public_html
 * [new branch]      master -> master
Run Code Online (Sandbox Code Playgroud)

但现在当我回到我的服务器时:

ls /home/website/public_html
branches  config  description  HEAD  hooks  info  objects  refs
Run Code Online (Sandbox Code Playgroud)

我推送到服务器的文件在哪里?我是以错误的方式来做这件事的吗?(我推出的本地文件夹中唯一的东西是自述文件)

git remote-server git-push

3
推荐指数
1
解决办法
2409
查看次数