全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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)

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python  # 爬虫  # Python爬虫实例爬取网站搞笑段子  # Python3.4编程实现简单抓取爬虫功能示例  # Python网络爬虫与信息提取(实例讲解)  # python利用urllib实现爬取京东网站商品图片的爬虫实例  # python制作小说爬虫实录  # python爬虫实战之最简单的网页爬虫教程  # Python 爬虫之超链接 url中含有中文出错及解决办法  # 基于python爬虫数据处理(详解)  # python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)  # Python爬虫之模拟知乎登录的方法教程  # python爬虫入门教程--优雅的HTTP库requests(二)  # Python爬虫实现(伪)球迷速成  # 进阶  # 操作技巧  # 相关内容  # 数据结构  # 给大家  # 更多关于  # 所述  # 程序设计  # 源代码  # 使用技巧  # 编程技巧  # 讲述了  # read  # close  # urlopen  # content  # return  # now_page  # int  # changepage 


相关文章: 做企业网站制作流程,企业网站制作基本流程有哪些?  建站之星24小时客服电话如何获取?  如何在IIS管理器中快速创建并配置网站?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  建站之星2.7模板快速切换与批量管理功能操作指南  太平洋网站制作公司,网络用语太平洋是什么意思?  免费网站制作appp,免费制作app哪个平台好?  建站之星下载版如何获取与安装?  如何通过虚拟主机空间快速建站?  建站之星免费版是否永久可用?  如何在西部数码注册域名并快速搭建网站?  建站之星如何实现PC+手机+微信网站五合一建站?  如何零基础开发自助建站系统?完整教程解析  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  建站中国官网:模板定制+SEO优化+建站流程一站式指南  创业网站制作流程,创业网站可靠吗?  如何用景安虚拟主机手机版绑定域名建站?  重庆市网站制作公司,重庆招聘网站哪个好?  电商平台网站制作流程,电商网站如何制作?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何基于PHP生成高效IDC网络公司建站源码?  建站主机类型有哪些?如何正确选型  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  宝塔面板如何快速创建新站点?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  建站主机与服务器功能差异如何区分?  建站主机选购指南与交易推荐:核心配置解析  网站制作需要会哪些技术,建立一个网站要花费多少?  微课制作网站有哪些,微课网怎么进?  如何批量查询域名的建站时间记录?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  高端网站建设与定制开发一站式解决方案 中企动力  C#怎么使用委托和事件 C# delegate与event编程方法  深圳网站制作培训,深圳哪些招聘网站比较好?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  如何挑选最适合建站的高性能VPS主机?  如何快速上传建站程序避免常见错误?  营销式网站制作方案,销售哪个网站招聘效果最好?  建站之星伪静态规则如何设置?  建站为何优先选择香港服务器?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何设计高效校园网站?  盘锦网站制作公司,盘锦大洼有多少5G网站?  网站代码制作软件有哪些,如何生成自己网站的代码?  建站之星伪静态规则如何正确配置?  教学网站制作软件,学习*后期制作的网站有哪些?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  长沙企业网站制作哪家好,长沙水业集团官方网站?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。