A Python Project
scrapy 中文编码处理 数据库配置
- 获取门户网站原始新闻及评论素材,结构化存储后,为分析舆情提供数据基础。
- 门户网站新闻有着微博不可替代的一些特点。
- 请参考配置说明,为了方便展示,可以结合django建立数据库
- 只需要爬虫的话建立database后修改settings.py相应参数就好了
- 对于网页的解析只用了re正则解析(快过Beautiful Soup)
- 爬虫 news 可以单独使用,暂时只提供mysql支持
- 包括新浪新闻门户,腾讯新闻门户,搜狐新闻(移动端)新闻以及评论
- 每日新闻数量上千,评论数量级数十万
- sudo apt-get install libxml2-dev libxslt1-dev
- sudo apt-get install python-dev
- sudo apt-get install libssl-dev
- sudo apt-get install libffi-dev
- pip install -r requirements.txt
- 更改settings.py适应你的本地化,数据库的相关设置,或者在 pipeline中修改相关参数
- 做了一个匹配的Django models模型方便了解,查看数据模型
- /news$ scrapy allstart 即可运行所有爬虫
- /news$ scrapy crawl sina
- /news$ scrapy crawl tencent
- /news$ scrapy crawl sohu
python 2.7
Mysql
Scrapy 1.0
Linux Ubuntu 14.04 tested
Windows 10 tested
- 编码问题:
- 中文网页:对中文的解析需要特别注意编码问题,utf-8是多数,但有时网站会采用GBK,GBK2312等编码格式。
- 数据库编码:出现了一大堆乱七八糟的文字,可以怀疑数据库字段编码跟内容编码不一致。
- 利用django建立数据库时会有一些被默认的参数可能会被忽略,比如说数据项默认为非空 not null = true,所以说:使用前请认真阅读document
- Email:[email protected]
- Author:liu kun
- Last-Modified:2016-10
- 抓的更全
- code review,运行更高效
- scrapy是一个优秀的爬虫框架,结构合理,提供多线程,以后随着学习的深入会试着将更多成果运用进来。
- 支持更多数据库类型,包括 NoSQL
- HTML cache
答辩完毕
现在看来这个项目还是存在很多问题的:
- 当初为了方便定制数据模型并于数据库同步,产生了 ORM(对象关系映射) 这个需求,碰巧用过 django 的那套东西,所以就直接拿来用了,现在知道有专门的工具 SQLAlchemy 来解决这个问题了。
- Mysql 数据量大之后进行查询真的好慢。
- 文档的编写相当不专业。