Tkinter爬虫(Zealer、Mydrivers)--with Proxy

import urllib2

class UseProxy(object):
    def __init__(self):
        self.user = ‘aaaa‘
        self.password = ‘bbbb‘
        self.proxyserver = ‘xxx.yyy.zzz:8080‘
        self.content = ‘‘

    def getproxy(self):
        proxy = ‘http://%s:%[email protected]%s‘ % (self.user, self.password, self.proxyserver)
        proxy_handler = urllib2.ProxyHandler({‘http‘: proxy})
        opener = urllib2.build_opener(proxy_handler, urllib2.HTTPHandler)
        # self.content = opener.open(self.url).read().decode(‘utf-8‘)
        return opener
UseProxy
from urlparse import urljoin
import re
from UseProxy import *
from bs4 import BeautifulSoup

class GetZealerVideo(object):
    def __init__(self):
        self.url = ‘http://www.zealer.com‘
        self.content = ‘‘
        self.lists = []

    def splitcontent(self, proxyset):
        # self.proxyset = UseProxy()
        self.content = proxyset.getproxy().open(self.url).read().decode(‘utf-8‘)
        # self.useproxy()
        soup = BeautifulSoup(self.content, "html.parser")
        founddiv = soup.findAll(‘div‘, {‘class‘: ‘subject‘})
        foundli = soup.findAll(‘div‘, {‘id‘: re.compile("^li_layer")})
        l = len(founddiv)
        self.lists = []
        if l == len(foundli):
                for i in range(l):
                    b = re.search(‘/post(/\d+)*‘, str(foundli[i]))
                    self.lists.append(urljoin(self.url, b.group()))
                    self.lists.append(founddiv[i].contents[0].encode(‘utf-8‘))
        return self.lists

if __name__ == ‘__main__‘:
    gvideo = GetZealerVideo()
    proxyset = UseProxy()
    print ‘.‘.join(gvideo.splitcontent(proxyset)).decode(‘utf-8‘)
GetZealerVideo
from UseProxy import *
from bs4 import BeautifulSoup

class GetMydrivers(object):
    def __init__(self):
        self.url = ‘http://www.mydrivers.com‘
        self.content = ‘‘
        self.lists = []

    def splitcontent(self, proxyset):
        # self.useproxy()
        self.content = proxyset.getproxy().open(self.url).read()
        soup = BeautifulSoup(self.content, "html.parser", from_encoding="gb18030")
        print soup.original_encoding
        founddiv = soup.findAll(‘span‘, {‘class‘: ‘titl‘})

        for i in range(len(founddiv)):
            self.lists.append(founddiv[i].contents[0])
        return self.lists

if __name__ == ‘__main__‘:
    gnews = GetMydrivers()
    proxyset = UseProxy()
    lists = gnews.splitcontent(proxyset)
    for l in lists:
            print str(l).decode(‘utf-8‘).encode(‘gb18030‘)
GetMydrivers
# -*- coding: utf-8 -*-
from Tkinter import *
from time import ctime
import os
import re
import GetZealerVideo as soup
import GetMydrivers as mnews
from UseProxy import *

class GetResource(object):
    def __init__(self):
        self.win = Tk()

        self.l1 = StringVar(self.win)
        self.msg = ""
        self.frame = Frame(width=800, height=600, bg=‘white‘)
        # self.frame.grid_propagate(False)
        # self.frame.grid()
        self.frame.propagate(False)
        self.frame.pack()

        self.scroll = Scrollbar(self.frame)
        self.scroll.pack(side=RIGHT, fill=Y)
        # self.scroll.grid(row=0, column=1)
        self.listbox = Listbox(self.frame, selectbackground=‘blue‘, font=‘12‘, heigh=550, width=750, yscrollcommand=self.scroll.set,
                               xscrollcommand=self.scroll.set)
        self.listbox.pack(side=TOP, fill=BOTH)
        # self.listbox.grid(row=0, column=0)
        self.listbox.bind(‘<Double-1>‘, self.get_select)

        self.frame2 = Frame(width=800, height=50, bg=‘white‘)
        self.frame2.propagate(False)
        self.frame2.pack()
        # self.frame2.grid_propagate(False)
        # self.frame2.grid()
        Button(self.frame2, text=u‘Get Zealer‘, command=self.zealer_video).pack(expand=YES)
        # Button(self.frame2, text=u‘Get Zealer‘, command=self.zealer_video).grid(row=0, column=0)

        Button(self.frame2, text=u‘Get Mydrivers‘, command=self.my_drivers).pack(expand=YES)
        # Button(self.win, text=u‘Get Mydrivers‘, command=self.my_drivers).grid(row=1, column=1)

    def my_drivers(self):
        print ‘start get at:‘, ctime()
        self.listbox.delete(0, END)
        self.getm = mnews.GetMydrivers()
        proxyset = UseProxy()
        for l in self.getm.splitcontent(proxyset):
            s = str(l).decode(‘utf-8‘)
            try:
                self.listbox.insert(END, re.findall(r‘(?<=href=").+?(?=">)‘, s)[0]+"\r\n")
                self.listbox.insert(END, re.findall(r‘(?<=>).+?(?=<)‘, s)[0]+"\r\n")
                self.listbox.update()
            except IndexError:
                pass
        print ‘get done at:‘, ctime()

    def zealer_video(self):
        print ‘start get at:‘, ctime()
        self.listbox.delete(0, END)
        self.getz = soup.GetZealerVideo()
        proxyset = UseProxy()
        for l in self.getz.splitcontent(proxyset):
            self.listbox.insert(END, l+"\r\n")
            self.listbox.update()
        print ‘get done at:‘, ctime()

    def get_select(self, ev=None):
        self.listbox.config(selectbackground=‘red‘)
        print self.listbox.curselection()
        self.check = self.listbox.get(self.listbox.curselection())
        if self.check:
            if re.match(‘http‘, self.check):
                os.startfile(self.check)

def main():
    d = GetResource()
    mainloop()

if __name__ == ‘__main__‘:
    main()
时间: 2024-08-26 14:10:20

Tkinter爬虫(Zealer、Mydrivers)--with Proxy的相关文章

23个Python爬虫开源项目代码:爬取微信、淘宝、豆瓣、知乎、微博等

来源:全球人工智能 作者:SFLYQ 今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [1]– 微信公众号爬虫. 基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. github地址:https://github.com/Chyroc/WechatSogou 2.DouBanSpider [2]– 豆瓣

23个Python爬虫开源项目代码

今天为大家整理了23个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快 1.WechatSogou [1]– 微信公众号爬虫. 基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. github地址:https://github.com/Chyroc/WechatSogou 2.DouBanSpider [2]– 豆瓣读书爬虫. 可以爬下豆瓣读书标签下的所

实用爬虫-02-爬虫真正使用代理 ip

实用爬虫-02-爬虫真正使用代理 ip 因为这里呢,是实用爬虫,想要仔细学习一些基础的,可以去查看: Python 爬虫教程:https://www.cnblogs.com/xpwi/category/1295282.html 获取代理 ip 的网站: www.goubanjia.com www.xicidaili.com [注意事项]: 1.如果测出来的 ip 是你本机的 ip,99% 的原因是:你找的代理 ip 不能用,更换其他 ip 2.测 ip 的地址的地址可能会变,一般不会更新,万一是

爬虫实战项目集合

WechatSogou https://github.com/Chyroc/WechatSogou 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider https://github.com/lanbing510/DouBanSpider 豆瓣读书爬虫.可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分书籍:可依据不同

32个Python爬虫项目让你一次吃到撑

整理了32个Python爬虫项目.整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心.所有链接指向GitHub,祝大家玩的愉快~O(∩_∩)O WechatSogou [1]- 微信公众号爬虫.基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典. DouBanSpider [2]- 豆瓣读书爬虫.可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛选评价人数>1000的高分

burpsuite2.0爬虫及扫描功能

crawl爬行 audit审计 在burpsuite中,爬虫和审计分为主动被动式. 被动式 在Dashboard仪表盘模块下,有关于爬虫和审计两个功能的设置: Live passive crawl from Proxy实时被动爬虫 Live audit from Proxy实时审计 被动式是几乎不额外构造请求进行爬虫和扫描,根据用户浏览网页进行常规请求,并对请求的数据进行简单分析. 主动式 在Dashboard仪表盘模块下,点击New scan,进行扫描配置. Scan details扫描细节

Scrapy爬取美女图片第三集 代理ip(下)

这是我的公众号获取原创保护的首篇文章,原创的肯定将支持我继续前行.现在写这篇文章的时间是晚上11:30,写完就回寝室休息了,希望更多的朋友与我一起同行(当然需要一个善良的妹子的救济). 好了,废话不多说,咱们进入今天的主题.上一篇咱们讲解了代理ip上篇,本篇咱们继续讲解代理ip.这一篇是上一篇的扩展和优化,主要的改动是使用scrapy来进行爬取代理ip,同时演示在scrapy框架中怎么使用mongodb数据库,最后使用多线程批量验证代理ip的合理性,大大加快了速度. 这次我选择的依然是http:

爬虫之proxy(代理)

proxy简介 proxy即为代理,我们爬虫的时候肯定会有频繁访问某一网站的情况,这个时候有些服务器会识别到我们是非正常访问,就会把我们的IP禁掉,这个时候就需要用代理了. 就好比现实生活中,我需要向A借一件东西,但是我跟A是仇人,直接向他借的话他不会借给我,这个时候我就让B帮我像A借,就说他要用,然后B借到东西之后再把东西给我用,这时,B就是我的代理了. 常用的免费代理网站:http://www.goubanjia.com/. 爬虫应该选择什么样的代理? 针对不需要用户登录,cookie验证的

python爬虫练习 -- 签名器+GUI界面(Tkinter)

效果图: 实现步骤如下: 实现原理:其实就是套了一层GUI的壳,主要还是爬虫抓取某个网站返回的数据,然后利用python自带的GUI工具包Tkinter来实现gui界面: 1.爬虫分析: 目标站点:http://www.uustv.com 1.可以看到是通过提交表单传递数据的 参数有: word: 风道 sizes: 60 fonts: jfcs.ttf fontcolor: #000000 2.找到返回的图片数据在返回的响应中, 3.主要实现逻辑 response = requests.pos