Python实现简单的网页抓取
现在开源的网页抓取程序有很多,各种语言应有尽有。
这里分享一下Python从零开始的网页抓取过程
第一步:安装Python
点击下载适合的版本https://www.python.org/
我这里选择安装的是Python2.7.11
第二步:安装PythonIDE可以任意选择,这里安转的是PyCharm
点击下载地址:http://www.jetbrains.com/pycharm/download/#section=windows
下载安装后可以选择新建一个项目,然后把需要编译的py文件放在项目中。
第三步安装引用包
在编译过程中会发现两个包的引用失败BeautifulSoup和xlwt,前者是对html标记的解析库,后者是可以对分析后的数据导出为excel文件
安装方法一样,这里的安装类似Linux依赖安装包一样。
常用的安装步骤
1.在系统中PATH环境变量添加Python安装目录
2.将需要安装的包解压后打开CMD命令窗口,分别切换至安装包目录,运行分别运行python setup.py build和python setup.py install
这样两个包就安装完成了
第四步编译运行
以下是编译执行的抓取代码,这里可以根据实际需求进行改动。简单的实现网页读取,数据抓取就挺简单的。
#coding:utf-8
import urllib2
import os
import sys
import urllib
import string
from bs4 import BeautifulSoup #导入解析html源码模块
import xlwt #导入excel操作模块
row = 0 style0 = xlwt.easyxf('font: name Times SimSun')
wb = xlwt.Workbook(encoding='utf-8')
ws = wb.add_sheet('Sheet1')
for num in range(1,100):#页数控制
url = "http://www.xxx.com/Suppliers.asp?page="+str(num)+"&hdivision=" #循环ip地址
header = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.22 Safari/537.36 SE 2.X MetaSr 1.0",
"Referer":"http://www.xxx.com/suppliers.asp"
}
req = urllib2.Request(url,data=None,headers=header)
ope = urllib2.urlopen(req)
#请求创建完成
soup = BeautifulSoup(ope.read(), 'html.parser')
url_list = [] #当前url列表 for _ in soup.find_all("td",class_="a_blue"):
companyname=_.a.string.encode('utf-8').replace("\r\n"," ").replace('|','')#公司名称
detailc=''#厂商详情基本信息
a_href='http://www.xxx.com/'+ _.a['href']+'' #二级页面
temphref=_.a['href'].encode('utf-8')
if temphref.find("otherproduct") == -1:
print companyname
print a_href
reqs = urllib2.Request(a_href.encode('utf-8'), data=None, headers=header)
opes = urllib2.urlopen(reqs)
deatilsoup = BeautifulSoup(opes.read(), 'html.parser')
for content in deatilsoup.find_all("table", class_="zh_table"): #输出第一种联系方式详情
detailc=content.text.encode('utf-8').replace("\r\n", "")
#print detailc # 输出详细信息
row = row + 1 # 添加一行
ws.write(row,0,companyname,style0) # 第几行,列1 列2...列n
ws.write(row,1, detailc,style0)
print '正在抓取'+str(row)
wb.save('bio-equip11-20.xls')
print '操作完成!'
运行结束则会在PycharmProjects项目的目录下创建已经采集好的数据保存excel文件。
Python实现简单的网页抓取的更多相关文章
- Python爬虫之三种网页抓取方法性能比较
下面我们将介绍三种抓取网页数据的方法,首先是正则表达式,然后是流行的 BeautifulSoup 模块,最后是强大的 lxml 模块. 1. 正则表达式 如果你对正则表达式还不熟悉,或是需要一些提 ...
- python网络爬虫-动态网页抓取(五)
动态抓取的实例 在开始爬虫之前,我们需要了解一下Ajax(异步请求).它的价值在于在与后台进行少量的数据交换就可以使网页实现异步更新. 如果使用Ajax加载的动态网页抓取,有两种方法: 通过浏览器审查 ...
- python网络爬虫-静态网页抓取(四)
静态网页抓取 在网站设计中,纯HTML格式的网页通常被称之为静态网页,在网络爬虫中静态网页的数据比较容易抓取,因为说有的数据都呈现在网页的HTML代码中.相对而言使用Ajax动态加载的玩个的数据不一定 ...
- Python3网络爬虫(1):利用urllib进行简单的网页抓取
1.开发环境 pycharm2017.3.3 python3.5 2.网络爬虫的定义 网络爬虫,也叫网络蜘蛛(web spider),如果把互联网比喻成一个蜘蛛网,spider就是一只在网上爬来爬去的 ...
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
前面一直强调Python运用到网络爬虫方面很有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简介下Python是怎样爬去网络数据的,文章知识很easy ...
- 使用Python编写简单网络爬虫抓取视频下载资源
我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎.所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚 ...
- python3一个简单的网页抓取
都是学PYTHON.怎么学都是学,按照基础学也好,按照例子增加印象也好,反正都是学 import urllib import urllib.request data={} data['word']=' ...
- Python selenium自动化网页抓取器
(开开心心每一天~ ---虫瘾师) 直接入正题---Python selenium自动控制浏览器对网页的数据进行抓取,其中包含按钮点击.跳转页面.搜索框的输入.页面的价值数据存储.mongodb自动i ...
- Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
随机推荐
- java sftp 报错 Permission denied (没有权限;拒绝访问)
解决办法: 1.检查账号密码是否错误 2.检查freeSSHD是否是以管理员身份运行的 3.检查sftp路劲有没有配置错误,java通过sftp将图片文件传输到指定文件夹,如果这个文件夹在配置的当前目 ...
- 《DSP using MATLAB》Problem 5.38
代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...
- hdu1695 GCD 容斥原理
Given 5 integers: a, b, c, d, k, you're to find x in a...b, y in c...d that GCD(x, y) = k. GCD(x, y) ...
- SenjuFamily项目总结 之 Activiti 学习总结(一)
项目干了一年了,最近开始整理一下项目中用到的知识,算是年末总结了. 大概有如下几个点: 1.Actitivi 2.JPA 3.WebService 4.JVM使用以及代码优化(这个地方,主要参考周志明 ...
- LeetCode – First Missing Positive
Given an unsorted integer array, find the smallest missing positive integer. Example 1: Input: [1,2, ...
- Mybatis一(基础)
mybatis架构 1.mybatis配置 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息. mapper.xml文件即sql映射文件, ...
- AspNet Core Api Restful +Swagger 发布IIS
上一步我们创建好CoreApi 接下来在框架中加入 Swagger 并发布 到 IIS (1)首先点击依赖项>管理Nuget包 (2)输入 Swashbuckle.aspnetCore 比 ...
- mongodb--Profiling慢查询详解
官方查询地址:https://docs.mongodb.com/v3.2/tutorial/manage-the-database-profiler/ 在很多情况下,DBA都要对数据库的性能进行分析处 ...
- 3、Sql-Ora-01033:oracle initialization or shutdown in progress
- format()的简单实用 笔记
# 关于format和format_map的使用# 如果要使用输出的字符串对其不仅仅是可以使用format,还可以使用ljust/rjust/center来处理,输出当然也可以是使用%来进行操作,但是 ...