美文网首页python学习杂记
python学习-爬取异步网页的数据

python学习-爬取异步网页的数据

作者: 时间之友 | 来源:发表于2017-10-09 15:23 被阅读0次

    在使用网站中,我们会发现一种网站的翻页是自动实现的,这里其实是利用js来自动加载而成,对于这样的网站,我们必须采取新的策略。

    参考代码:

    from bs4 import BeautifulSoup
    import requests
    import time
    url = 'https://knewone.com/discover?page='
    # 定义一个网页的爬取行为
    def get_page(url, data= None):
           wb_data = requests.get(url)
            soup = BeautifulSoup(wb_data.text, 'lxml')
            imgs = Soup.select('a.cover-inner > img')
            titles = Soup.select('section.content > h4 > a')
            links = Soup.select('section.content > h4 > a')
            if data==None:
                    for img,title,link in zip(imgs,titles,links):
                            data = {
                                     'img': img.get('src'),
                                      'title': title.get('title'),
                                    'link': link.get('href')
                            }
                            print(data)
    # 定义许多网页的资料爬取
    def get_more_pages(start,end):
            for one in range(start,end):
                    get_page(url+str(one)) #这里是2个字符串相加,就成了下一页的网址
                    time.sleep(2)
    get_more_pages(1,10)
    

    好了,以上是全部代码?那这段代码是如何找到不同页面的规律的?
    因为网页是异步加载,所以,我们先点击 检查 ,进入网页元素页面,点击 network,再点击 XHR ,下翻页面,会看到name行有新的网页地址进来,这里就是我们要的新网页,从新网页中找到规律:
    该网页的规律是在基础网页的后面加数字,翻一页,增加 +1,所以,代码就这么表示了 get_page(url+str(one))

    示意 解说

    相关文章

      网友评论

        本文标题:python学习-爬取异步网页的数据

        本文链接:https://www.haomeiwen.com/subject/kpcpyxtx.html