这是我的爬虫笔记,希望的对正在学习Python爬虫的你有所帮助!

长期更新 (๑• . •๑)

平时有个习惯,会把自己的笔记写在有道云里面,现在做个整理。会长期更新,因为我是BUG制造机。

解析

xpath提取所有节点文本

平时有个习惯,会把自己的笔记写在有道云里面,现在做个整理。会长期更新,因为我是BUG制造机。

使用xpath的string(.)

如何解决详情页面元素改变

这个问题是这样产生的,在很多PC站,比如链家,这个页面有这些字段A,但是下个页面这个字段A没了,取而代之的是字段B,在xpath定位时就失效了。这个问题很常见,大体思路是这样的。

  1. 创建一个包含所有字段的dict: data = {}.fromkeys(('url', 'price', 'address'))
  2. 然后根据网页中是否有字段来取值,例如,有’url’就取对应的value,没有则为空
  3. 这样就可以完美解决匹配不全问题

Scrapy 相关

文件编写

逻辑文件和解析部分分开写,匹配文件目录是utils/parse/,爬虫文件目录是spiders/

Scrapy 中文乱码

在 setting 文件中设置:FEED_EXPORT_ENCODING = 'utf-8'

Scrapy 使用Mongo

pipelines.py

  1. 首先我们要从settings文件中读取数据的地址、端口、数据库名称。
  2. 拿到数据库的基本信息后进行连接。
  3. 将数据写入数据库(update制定唯一键)
  4. 关闭数据库

注意:只有打开和关闭是只执行一次,而写入操作会根据具体的写入次数而定。
Redis 无需关闭

scrapy图片下载

scrapy 暂停爬虫

scrapy crawl somespider -s JOBDIR=crawls/somespider-1

scrapy_redis 分布式

使用队列与去重即可完成分布式需求,需要注意的是 Redis 格式,默认采用的是 list, 可以在 settings.py 文件中设置 REDIS_START_URLS_AS_SET = True,使用 Redis的 set类型(去重种子链接)

安装

超时问题

自定义超时时间

sudo pip3 --default-timeout=100 install -U scrapy

或者 使用其他源

sudo pip3 install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple

权限问题

安装某模块时,报错:PermissionError: [WinError 5] 拒绝访问。: 'c:\\program files\\python35\\Lib\\sit e-packages\\lxml'

最简单方法:pip install --user lxml

Pycharm 相关

.gitignore 文件

安装插件: Preferences > Plugins > Browse repositories... > Search for ".ignore" > Install Plugin

然后就可以很方便的添加到 .gitignore

显示函数

点击 Show Members,查看目录,会显示相应的类和函数

激活码

  1. http://idea.liyang.io
  2. http://xidea.online

数据

Mongo导出命令

λ mongoexport -d test -c set --type=csv -f name,age -o set.csv

λ mongoexport -h 10.10.10.11 -d test -c test --type=csv -f url,id,title -o data.csv

其他

requirements.txt 文件

小提示:使用 pigar 可以一键生成 requirements.txt 文件

Installation:pip install pigar

Usage:pigar

好了,今天先写这点,以后再补上。

在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习裙【639584010】无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

猜你喜欢

转载自blog.csdn.net/qq_41888542/article/details/81413201