python爬虫代码

原创python爬虫代码

主要用到urllib2、BeautifulSoup模块

#encoding=utf-8
import re
import requests
import urllib2
import datetime
import MySQLdb
from bs4 import BeautifulSoup
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

class Splider(object):
    def __init__(self):
    print u‘开始爬取内容...‘

    ##用来获取网页源代码
    def getsource(self,url):
    headers = {‘User-Agent‘:‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2652.0 Safari/537.36‘}
    req = urllib2.Request(url=url,headers=headers)
    socket = urllib2.urlopen(req)
    content = socket.read()
    socket.close()
    return content

    ##changepage用来生产不同页数的链接
    def changepage(self,url,total_page):
        now_page = int(re.search(‘page/(\d+)‘,url,re.S).group(1))
    page_group = []
    for i in range(now_page,total_page+1):
        link = re.sub(‘page/(\d+)‘,‘page/%d‘ % i,url,re.S)
        page_group.append(link)
    return page_group

    #获取字内容
    def getchildrencon(self,child_url):
    conobj = {}
    content = self.getsource(child_url)
    soup = BeautifulSoup(content, ‘html.parser‘, from_encoding=‘utf-8‘)
    content = soup.find(‘div‘,{‘class‘:‘c-article_content‘})
    img = re.findall(‘src="(.*?)"‘,str(content),re.S)
    conobj[‘con‘] = content.get_text()
    conobj[‘img‘] = (‘;‘).join(img)
    return conobj

    ##获取内容
    def getcontent(self,html_doc):
    soup = BeautifulSoup(html_doc, ‘html.parser‘, from_encoding=‘utf-8‘)
    tag = soup.find_all(‘div‘,{‘class‘:‘promo-feed-headline‘})
    info = {}
    i = 0
    for link in tag:
        info[i] = {}
        title_desc = link.find(‘h3‘)
        info[i][‘title‘] = title_desc.get_text()
        post_date = link.find(‘div‘,{‘class‘:‘post-date‘})
        pos_d = post_date[‘data-date‘][0:10]
        info[i][‘content_time‘] = pos_d
        info[i][‘source‘] = ‘whowhatwear‘
        source_link = link.find(‘a‘,href=re.compile(r"section=fashion-trends"))
        source_url = ‘http://www.whowhatwear.com‘+source_link[‘href‘]
        info[i][‘source_url‘] = source_url
        in_content = self.getsource(source_url)
        in_soup = BeautifulSoup(in_content, ‘html.parser‘, from_encoding=‘utf-8‘)
        soup_content = in_soup.find(‘section‘,{‘class‘:‘widgets-list-content‘})
        info[i][‘content‘] = soup_content.get_text().strip(‘\n‘)
        text_con = in_soup.find(‘section‘,{‘class‘:‘text‘})
        summary = text_con.get_text().strip(‘\n‘) if text_con.text != None else NULL
        info[i][‘summary‘] = summary[0:200]+‘...‘;
        img_list = re.findall(‘src="(.*?)"‘,str(soup_content),re.S)
        info[i][‘imgs‘] = (‘;‘).join(img_list)
        info[i][‘create_time‘] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        i+=1
    #print info
    #exit()
    return info

    def saveinfo(self,content_info):
    conn = MySQLdb.Connect(host=‘127.0.0.1‘,user=‘root‘,passwd=‘123456‘,port=3306,db=‘test‘,charset=‘utf8‘)
    cursor = conn.cursor()
    for each in content_info:
        for k,v in each.items():
        sql = "insert into t_fashion_spider2(`title`,`summary`,`content`,`content_time`,`imgs`,`source`,`source_url`,`create_time`) values (‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘,‘%s‘)" % (MySQLdb.escape_string(v[‘title‘]),MySQLdb.escape_string(v[‘summary‘]),MySQLdb.escape_string(v[‘content‘]),v[‘content_time‘],v[‘imgs‘],v[‘source‘],v[‘source_url‘],v[‘create_time‘])
        cursor.execute(sql)

    conn.commit()
    cursor.close()
    conn.close()

if __name__ == ‘__main__‘:
    classinfo = []
    p_num = 5
    url = ‘http://www.whowhatwear.com/section/fashion-trends/page/1‘
    jikesplider = Splider()
    all_links = jikesplider.changepage(url,p_num)
    for link in all_links:
    print u‘正在处理页面:‘ + link
    html = jikesplider.getsource(link)
    info = jikesplider.getcontent(html)
    classinfo.append(info)
    jikesplider.saveinfo(classinfo)
时间: 2024-10-13 01:48:56

python爬虫代码的相关文章

一段完整的批量下载网站视频资源的python爬虫代码(附注解)

# 本程序为学习代码,成功爬取了'梨视频'网站的全部视频文件,并保存在video文件夹 import os import re import requests def getHTMLText(url): try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: print("request failed") url = 'https://www.p

爬取汽车之家新闻图片的python爬虫代码

import requestsfrom bs4 import BeautifulSouprespone=requests.get('https://www.autohome.com.cn/news/')respone.encoding='gbk'# print(respone.text) soup=BeautifulSoup(respone.text,'html.parser')div=soup.find(name='div',attrs={'id':'auto-channel-lazyload

大量 python 爬虫源码分享--说说 python 爬虫这件小事

没有爬虫就没有互联网,越来越觉得写 Python 爬虫原来是一件快乐而高兴的事情,以下是本人收集整理的一批 python 爬虫代码,顺便分享到了别的网站上,喜欢的下下来看看吧. 内容: yunpan.360.cn.py 360 网盘爬虫 ed2k_search.py 电驴爬虫 music.163.com.py 163 音乐爬虫 music.baidu.com.py 百度音乐爬虫 pan.baidu.com.py 百度网盘爬虫 115.py 115 爬虫 91porn.py 91porn 爬虫 等

python爬虫实战——5分钟做个图片自动下载器

python爬虫实战--图片自动下载器 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 分析需求(对,需求分析非常重要,不要告诉我你老师没教你) 分析网页源代码,配合F12(没有F12那么乱的网页源代码,你想看死我?) 编写正则表达式或者XPath表达式(就是前面说的那个神器) 正式编写python爬虫代码 效果 运行: 恩,让我输入关键词,让我想想,输入什么好呢?好像有点暴露爱好了. 回车 好像开始下载了!好赞!,我看

【图文详解】python爬虫实战——5分钟做个图片自动下载器

python爬虫实战--图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap show me the code! 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 1. 分析需求(对,需求分析非常重要,不要告诉我你老师没教你) 2. 分析网页源代码,配合F12(没有F12那么乱的网页源代码,你想看死我?) 3. 编写正则表达式或

如何用Python爬虫实现百度图片自动下载?

Github:https://github.com/nnngu/LearningNotes 制作爬虫的步骤 制作一个爬虫一般分以下几个步骤: 分析需求 分析网页源代码,配合开发者工具 编写正则表达式或者XPath表达式 正式编写 python 爬虫代码 效果预览 运行效果如下: 存放图片的文件夹: 需求分析 我们的爬虫至少要实现两个功能:一是搜索图片,二是自动下载. 搜索图片:最容易想到的是爬百度图片的结果,我们就上百度图片看看: 随便搜索几个关键字,可以看到已经搜索出来很多张图片: 分析网页

Python爬虫验证码一键式自动识别、免费短信接收、包含一些转码、解密、时间戳转换

验证码一键式自动识别.免费短信接收.包含一些转码.解密.时间戳转换.IP查询.HASH.自动解密等功能, 喜欢就 star 以表支持 下载 Python爬虫代码下载 声明 此项目以研究学习.减轻测试量为目的,禁止用于非法用途. 软件有可能会被杀毒软件误杀,设置信任即可. 功能树 验证码自动识别服务 API调用方法查看 免费短信接收器 正则匹配测试 一键获取免费代理 IP IP 查询 时间戳转换与获取 转码 URL 编码互转 简体-繁体互转 Base64.utf8.gb2312.Unicode.中

python写的简单有效的爬虫代码

python写的简单有效的爬虫代码 by 伍雪颖 import re import urllib def getHtml(url): html = urllib.urlopen(url) scode = html.read() return scode def getImage(source): reg = r'src="(.*?\.jpg)"' imgre = re.compile(reg) images = re.findall(imgre,source) x = 0 for i

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

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