Python实现的爬虫功能代码
发布时间 - 2026-01-11 02:02:05 点击率:次本文实例讲述了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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
怎么用AI帮你为初创公司进行市场定位分析?
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
如何在腾讯云服务器上快速搭建个人网站?
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Laravel如何使用查询构建器?(Query Builder高级用法)
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
iOS正则表达式验证手机号、邮箱、身份证号等
如何在 React 中条件性地遍历数组并渲染元素
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
西安专业网站制作公司有哪些,陕西省建行官方网站?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
微信小程序 require机制详解及实例代码
SQL查询语句优化的实用方法总结
Laravel如何配置任务调度?(Cron Job示例)
html文件怎么打开证书错误_https协议的html打开提示不安全【指南】
如何解决hover在ie6中的兼容性问题
HTML 中如何正确使用模板变量为元素的 name 属性赋值
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
Laravel如何处理文件下载请求?(Response示例)
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
太平洋网站制作公司,网络用语太平洋是什么意思?
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
C#如何调用原生C++ COM对象详解
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Android滚轮选择时间控件使用详解
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
想要更高端的建设网站,这些原则一定要坚持!
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
软银砸40亿美元收购DigitalBridge 强化AI资料中心布局
Swift开发中switch语句值绑定模式
网站制作软件免费下载安装,有哪些免费下载的软件网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
canvas 画布在主流浏览器中的尺寸限制详细介绍
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何续费美橙建站之星域名及服务?
青岛网站建设如何选择本地服务器?
油猴 教程,油猴搜脚本为什么会网页无法显示?
打造顶配客厅影院,这份100寸电视推荐名单请查收
C++用Dijkstra(迪杰斯特拉)算法求最短路径
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
如何在IIS服务器上快速部署高效网站?
北京网站制作公司哪家好一点,北京租房网站有哪些?

