多线程爬取都挺好链接并保存到mongodb

  • 一个比较简单,python3多线程使用requests库爬取都挺好,并使用正则提取下载链接,保存到mongodb
  • #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    """
    @author:Aiker Zhao
    @file:doutinghao.py
    @time:下午8:18
    """
    import requests
    import re
    import pymongo
    from multiprocessing import Pool
    
    MONGO_URL = ‘localhost:27017‘
    MONGO_DB = ‘doutinghao‘
    MONGO_TABLE = ‘doutinghao‘
    client = pymongo.MongoClient(MONGO_URL, connect=False)
    db = client[MONGO_DB]
    
    def get_result(url):
        response = requests.get(url).text
        # print(reponse.text)
        pattern = re.compile(‘<a href="(ed2k.*?)"\srel.*?title="(.*?.mp4).*?".*?>‘, re.S)
        result = re.findall(pattern, response)
        if result:
            for i in result:
                url, name = i
                yield {
                    "name": name,
                    ‘url‘: url
                }
    
    def save_to_mongo(result):
        if db[MONGO_TABLE].insert(result):
            print(‘存储到MongoDB成功‘, result)
            return True
        return False
    
    def main(result):
        # result = get_result(url)
        save_to_mongo(result)
    
    if __name__ == ‘__main__‘:
        pool = Pool()
        url = "https://www.xl720.com/thunder/34283.html"
        item = [item for item in get_result(url)]
        # print(item)
        pool.map(main, item)
        pool.close()
        pool.join()
    


    原文地址:https://blog.51cto.com/m51cto/2375053

    时间: 2024-09-30 06:32:07

    多线程爬取都挺好链接并保存到mongodb的相关文章

    爬取资讯网站的新闻并保存到excel

    #!/usr/bin/env python#* coding:utf-8 *#author:Jacky from selenium.webdriver.common.keys import Keysfrom selenium import webdriverfrom bs4 import BeautifulSoupimport xlwt driver = webdriver.Firefox()driver.implicitly_wait(3)first_url = 'http://www.yid

    实现多线程爬取数据并保存到mongodb

    多线程爬取二手房网页并将数据保存到mongodb的代码: import pymongo import threading import time from lxml import etree import requests from queue import Queue index_url='https://m.lianjia.com/gz/ershoufang/pg{}/' detail_url='https://m.lianjia.com{}' # 设置爬取主页的页数 INDEX_PAGE_

    使用线程池多线程爬取链接,检验链接正确性

    我们网站大多数链接都是活链接都是运营配置的,而有的时候运营会将链接配置错误使访问出错,有时也会因为程序bug造成访问出错,因此对主站写了个监控脚本,使用python爬取主站设置的链接并访问,统计访问出错的链接,因为链接有上百个,所以使用了多线程进行,因为http访问是io密集型,所以python多线程还是可以很好的完成并发访问的. 首先是index.py 使用了线程池管理线程,做到了配置需要检验的链接,然后爬取配置的链接页面中的所有链接,同时因为可能子页面许多url链接是和主站重复的,也可以做剔

    Python爬虫入门教程: All IT eBooks多线程爬取

    All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着,是的,就这么放着.......然后慢慢的遗忘掉..... All IT eBooks多线程爬取-爬虫分析 打开网址 http://www.allitebooks.com/ 发现特别清晰的小页面,一看就好爬 在点击一本图书进入,发现下载的小链接也很明显的展示在了我们面前,小激动一把,这么清晰无广告的

    多线程爬取糗事百科热门段子 (改写前天的博客)

    利用多线程爬取,除了先前用到的几个模块之外,还需用到threading模块和queue模块: 为每一件事情开启一个线程:构造url_list.发送请求.提取数据.保存数据 __init__方法添加三个实例属性队列分别存放:url.响应内容.处理后的数据 改写原先每一个方法里的代码,需要的东西直接从队列中取出,此时方法都无需多余参数了 每当从一个队列取出数据,记得执行task_done()方法,使计数减一 run()方法里把yaozhixing的事情都开启一个线程,比较慢的事情,比如网络请求,可以

    多线程爬取小说时如何保证章节的顺序

    前言 爬取小说时,以每一个章节为一个线程进行爬取,如果不加以控制的话,保存的时候各个章节之间的顺序会乱掉. 当然,这里说的是一本小说保存为单个txt文件,如果以每个章节为一个txt文件,自然不会存在这种情况. 不仅仅是小说,一些其他的数据在多线程爬取时也有类似情况,比如: 漫画:漫画其实是由大量图片组成,一般一本漫画会保存为一个pdf文件,在此过程要保证图片的顺序. 视频:现在网络上的视频大部分是由多个ts文件拼合,最后保存为一个mp4文件,要保证ts文件的顺序. 它们都有一个共同的特点,那就是

    多线程爬取百度百科

    前言:EVERNOTE里的一篇笔记,我用了三个博客才学完...真的很菜...百度百科和故事网并没有太过不一样,修改下编码,debug下,就可以爬下来了,不过应该是我爬的东西太初级了,而且我爬到3000多条链接时,好像被拒绝了...爬取速度也很慢,估计之后要接触一些优化或者多进程,毕竟python是假的多线程.本博客参照代码及PROJECT来源:http://kexue.fm/archives/4385/ 源代码: 1 #! -*- coding:utf-8 -*- 2 import reques

    python多线程爬取网页

    #-*- encoding:utf8 -*- ''' Created on 2018年12月25日 @author: Administrator ''' from multiprocessing.dummy import Pool as pl import csv import requests from lxml import etree def spider(url): header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1

    多线程爬取笔趣阁免费小说全站爬取

    import threading,os,time,requests,pymongo,refrom queue import Queuefrom lxml import etreefrom bs4 import BeautifulSoup as BPclient = pymongo.MongoClient(host='localhost',port=27017)mg = client['biquge']def get_fenlei(): """ 爬取图书全部分类 :return