美文网首页
Python 学习——每天写点小东西-6

Python 学习——每天写点小东西-6

作者: 盐巴有点咸 | 来源:发表于2016-06-21 14:30 被阅读0次

今天的爬虫是爬取某网站的所有链接,涉及到了MongoDB及其简单的操作,和多线程,虽然爬取的数据简单,但是能爬取这么多的数据,感觉很激动。
代码如下:
channel_extract.py

from bs4 import BeautifulSoup
import requests


start_url = 'http://cd.58.com/sale.shtml'
url_host = 'http://cd.58.com'


def get_channel_urls(url):
    wb_data = requests.get(url)
    soup = BeautifulSoup(wb_data.text, 'lxml')
    links = soup.select('ul.ym-submnu > li > b > a')
    for link in links:
        page_url = url_host + link.get('href')
        print(page_url)

# get_channel_urls(start_url)     # 爬取所有二级链接,并存入channel_list


channel_list = '''

'''

page_parsing.py

def get_links_from(channel, pages, who_sells=0): # 爬取二级链接下面的一个页面的所有链接
    list_view = '{}{}/pn{}'.format(channel, str(who_sells), str(pages))
    wb_data = requests.get(list_view)
    time.sleep(1)
    soup = BeautifulSoup(wb_data.text, 'lxml')

    if soup.find('td', 't'):
        for link in soup.select('td.t a.t'):
            item_link = link.get('href').split('?')[0]
            if len(item_link) <= 56 and 'jump' not in item_link:  # 去点无效链接
                url_list.insert_one({'url': item_link})
                print(item_link)
    else:
        pass

main.py

from multiprocessing import Pool
from channel_extract import channel_list
from page_parsing import get_links_from


def get_all_links_from(channel):
    for page in range(1, 101):
        get_links_from(channel, page)


if __name__ == '__main__':
    pool = Pool()
    pool.map(get_all_links_from, channel_list.split())

最后一个计数文件:
count.py

import time
from page_parsing import url_list


while True:
    print(url_list.find().count())    # 从MongoDB中获取数据条数
    time.sleep(5)

虽然爬取的数据不是很多,但是能够激励我坚持学习下去。

相关文章

  • Python 学习——每天写点小东西-6

    今天的爬虫是爬取某网站的所有链接,涉及到了MongoDB及其简单的操作,和多线程,虽然爬取的数据简单,但是能爬取这...

  • Python 学习——每天写点小东西-1

    最近开始学习python,这里就作为学习记录,记录自己的python之路。本条爬虫爬取的是糗事百科的24小时热门里...

  • Python 学习——每天写点小东西-4

    今天的爬虫比较简单,就不做详细介绍。爬取的是某网站的租房信息。 自己电脑网速太慢一直爬不完,最后使用AWS主机才爬...

  • Python 学习——每天写点小东西-5

    今天的爬虫是爬取某网站的商品信息,难点在于网页浏览量的爬取,不仅需要伪造Referer,而且浏览量的获取不能直接抓...

  • Python 学习——每天写点小东西-3

    今天写的爬虫是为了抓去拉钩网上面的招聘信息,代码如下: 思路:在fire-bug下面发现搜索职业后会从浏览器上传了...

  • Python 学习——每天写点小东西-2

    题目来源: github-Yixiaohan 1.使用python生成200个优惠码 2.任一个英文的纯文本文件,...

  • Python 学习——每天写点小东西-7

    最近都没怎么写爬虫,主要是不知道如何能够把爬到的数据利用起来,今天就贴一个简单的爬虫。 爬取的数据不多只有几千条,...

  • 新开始

    几年之后的今天,觉得每天继续写点小东西,全当心里安慰!

  • 写点小东西

    中原焦点中16 坚持分享第1043天 22.4.14运动打卡第269天 1788h 约练618/ 这思绪啊,就在喜...

  • 每天写点东西—6

    如何正确的分析一个问题? 对于一个做技术支持工作,在后台做支持的人,如何准确的定位产品问题的症结所在? 链条越长,...

网友评论

      本文标题:Python 学习——每天写点小东西-6

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