python爬虫采集
python爬虫采集
最近有个项目需要采集一些网站网页,以前都是用php来做,但现在十分流行用python做采集,研究了一些做一下记录。
采集数据的根本是要获取一个网页的内容,再根据内容筛选出需要的数据,
python的好处是速度快,支持多线程,高并发,可以用来大量采集数据,缺点就是和php相比,python的轮子和代码库貌似没有php全,而且python的安装稍微麻烦了点,折腾了好久。
python3的安装见连接:
https://www.cnblogs.com/mengzhilva/p/11059329.html
工具编辑器:
PyCharm :一款很好用的python专用编辑器,可以编译和运行,支持windows
python采集用到的库:
requests:用来获取网页的内容,支持https,用户登录信息等,很强大
lxml:用来解析采集的html内容,十分好用,比较灵活,但很多用法不好找,api文档不好找。
pymysql:连接操作mysql,这个就不用说了,将采集到的信息存到数据库。
基本上这三个就可以支持采集网页
安装代码:
用pip安装调用代码:
pip install pymysql
pip install requests
pip install lxml
采集数据:
采集的代码和打印的结果:
# coding=utf-8 #设置页码编码,解决中文乱码
import re
import pymysql
import requests
from mydb import *
from lxml import etree
#模拟浏览器访问
headers = {
'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
}
#requests获取网页
respose = requests.get('https://www.cnblogs.com/mengzhilva/', headers=headers)
content = respose.text #获取内容
html = etree.HTML(content) #用lxml格式化
result = etree.tostring(html, encoding='utf-8') # 解析对象输出代码
titles = html.xpath('//div[@class="day"]//div[@class="postTitle"]//a/text()') #查找相应数据
url = html.xpath('//div[@class="day"]//div[@class="postTitle"]//a/@href') #查找相应数据
print(titles)
print(url)
i=1
for val in titles:
url = html.xpath('//div[@class="day"][' + format(i) + ']//div[@class="postTitle"]//a/@href') # 根据循环查找列表地址
print(val)
print(url)
#这里可以调用单独的函数来抓取详情页内容
i+=1

python爬虫采集的更多相关文章
- 基于Python爬虫采集天气网实时信息
相信小伙伴们都知道今冬以来范围最广.持续时间最长.影响最重的一场低温雨雪冰冻天气过程正在进行中.预计,今天安徽.江苏.浙江.湖北.湖南等地有暴雪,局地大暴雪,新增积雪深度4-8厘米,局地可达10- ...
- 抖音爬虫教程,python爬虫采集反爬策略
一.爬虫与反爬简介 爬虫就是我们利用某种程序代替人工批量读取.获取网站上的资料信息.而反爬则是跟爬虫的对立面,是竭尽全力阻止非人为的采集网站信息,二者相生相克,水火不容,到目前为止大部分的网站都还是可 ...
- python爬虫采集网站数据
1.准备工作: 1.1安装requests: cmd >> pip install requests 1.2 安装lxml: cmd >> pip install lxml ...
- python爬虫-采集英语翻译
http://fanyi.baidu.com/?aldtype=85#en/zh/drughttp://fanyi.baidu.com/?aldtype=85#en/zh/cathttp://fa ...
- 编写python爬虫采集彩票网站数据,将数据写入mongodb数据库
1.准备工作: 1.1安装requests: cmd >> pip install requests 1.2 安装lxml: cmd >> pip install lxml ...
- Python爬虫——城市公交、地铁站点和线路数据采集
本篇博文为博主原创,转载请注明. 城市公交.地铁数据反映了城市的公共交通,研究该数据可以挖掘城市的交通结构.路网规划.公交选址等.但是,这类数据往往掌握在特定部门中,很难获取.互联网地图上有大量的信息 ...
- python爬虫成长之路(一):抓取证券之星的股票数据
获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为python3.5,意在抓取证券之星上当天所 ...
- 批量下载小说网站上的小说(python爬虫)
随便说点什么 因为在学python,所有自然而然的就掉进了爬虫这个坑里,好吧,主要是因为我觉得爬虫比较酷,才入坑的. 想想看,你可以批量自动的采集互联网上海量的资料数据,是多么令人激动啊! 所以我就被 ...
- Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...
随机推荐
- Java基础之原生JDBC操作数据库
前言 日常开发中,我们都习惯了使用ORM框架来帮我们操作数据库,本文复习.记录Java如何使用原生JDBC操作数据库 代码编写 封装几个简单方法 find查询方法 findOne查询方法 update ...
- Kubernetes集群环境搭建全过程
资源准备以及服务器初始化 所有服务器执行一下脚本进行配置信息初始化: #!/bin/bash cd `dirname $0` # 关闭selinux setenforce 0 sed -i '/SEL ...
- Java中的位运算符 &、|、^、~、<< 和 >>
一.& 按位与运算符 5 & 3 = 1 5转换为二进制:0000 0000 0000 0000 0000 0000 0000 0101 3转换为二进制:0000 0000 0000 ...
- nvidia-msi命令解读
nvidia-msi 或者 watch -n 1 nvidia-smi 打印出表格中: 第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转 ...
- hdu 1502 Regular Words(DP)
题意: 一个单词X由{A,B,C}三种字母构成. A(X):单词X中A的个数.B(X),C(X)同理. 一个单词X如果是regular word必须满足A(X)=B(X)=C(X)且对于X的任意前缀有 ...
- filter tools
// 过滤商品分类 Vue.filter("cateFilter", (data) => { let tmp = ["一级分类", "二级分 ...
- AppScan 10安装使用
一.简介 AppScan是IBM的一款web安全扫描工具,具有利用爬虫技术进行网站安全渗透测试的能力,能够根据网站入口自动摸取网页链接进行安全扫描,提供了扫描.报告和修复建议等功能. appscan有 ...
- 折腾systemd-nspawn运行centos7
Archlinux创建Debian/Ubuntu的systemd-nspawn容器是很简单的,因为有debootstrap软件.某天我突然想装个centos7玩玩,搜了半天没发现有什么类似于deboo ...
- R语言中文分词包jiebaR
R语言中文分词包jiebaR R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据 ...
- 查看python是32位,还是64位
步骤:cmd打开命令行,输入python,查看. 如果32bit,则是32位:如果是64,则是64位 如果需要安装客户端进行orcale数据库操作,则要保证python\