【实战】卡车之家——动态加载内容的爬取方法_卡车之家 进行爬虫

通过观察分析可以看到,每一个网页除了调用pager的网页之外,下拉加载的地址为http://www.360che.com/ajaxpage/ArticleCategory2014/ArticleCategory2014Ajax.aspx?c=1&p=2。第一页加载2、3,第二页加载5、6,第三页加载8、9。  我们将最后的数字改为1、4、7时,可以发现返回结果中的新闻内容与pager相对应。

此时我们可以确认通过访问 http://www.360che.com/ajaxpage/ArticleCategory2014/ArticleCategory2014Ajax.aspx?c=1&p=1,改变最后一位的数字,就可以访问到全部的新闻内容。

确定了如何遍历网页内容后,我们需要确定如何结束循环遍历。通常的网站,当我们访问一个较大的或者不存在的链接时,会返回错误,今天的目标网站不一样,我们将最后一个数字改成10000.可以看到还是有返回结果。当把数字改成20000时,也是有返回结果的。不过,仔细观察两次的返回结果,可以发现这两次的返回结果都是一样的。所以我们结束的判断为当前接口返回的内容和上一次调用接口返回的内容一致,就结束访问。

找到了开始和结束的确认方式,我们再在当前的基础上增加将新闻url存储到redis数据库的过程,方便通过scrapy-redis进行新闻网页的下载。

部分代码

以下是主端代码。

import requests
from bs4 import  BeautifulSoup
import redis

class Item():
    def __init__(self,title,url,time,auth):
        self.title = title
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值