您的位置:首页 > 编程语言 > Python开发

requests和bs4的python爬虫入门

2016-10-18 20:35 666 查看
现在就简单的讲下这几个月的学习成果嘛~~~

爬虫其实爬的都是源代码,然后再通过对源代码进行过滤,得出我们想要的东西~

有时会需要一些正则的东西~

比如一些文本啊,图片的src啊,链接的href啊~~

这里面有一些lazyload的图片,就需要 selenium webdriver 什么的了,这个还没研究到哈,勿喷勿喷。

上面的答案也有提到过,用requests和bs4写爬虫真的是傻瓜爬虫系列。

就是很容易了~~ 但是无论写什么程序,都得把文档读一遍先,个人认为这俩个文档还是很友好的~

requests文档
快速上手 — Requests 2.10.0 文档

BeautifulSoup文档
Beautiful Soup 4.4.0 文档

首先引入这俩模块

from bs4 import BeautifulSoup
import requests


然后要给requests个url,告诉他我要爬取那个url的源码,假如就是这个问题的答案把

url = 'https://www.zhihu.com/question/20899988'


有时候还要伪装个header一起传给服务器,

User-Agent 就是浏览器版本,cookie就是本地终端上的数据

这两个开f12 的network 点doc 然后就应该能看得到了

headers = {
'User-Agent':'',
'Cookie':''
}


然后就可以用requests进行爬取了

data = requests.get(url, headers=headers)


其实这个data是个response 对象

需要.text一下再交给 bs4

soup = BeautifulSoup(data.text, 'lxml')


之后就能用soup.select 进行选择了,

要是不会写selector 最简单的方法,开f12 右键 copy > copy selector

例如我们写个简单的获取图片的。

imgs = soup.select('div.zm-editable-content > img')


这个soup.select 返回的是一个list,所以你要for in 循环一下

比如把它的link都放在一个list里

img_link = []
for i in imgs:
img_link.append(i.get('data-actualsrc'))


那么,我知道了这些link有什么用啊~~下面我们就可以用urllib.urlretrieve来下载他们了啊!!

如果你爬被反爬的话,还可以 引入time 让程序睡一会

import time
time.sleep(4)


源代码就在这里啦~~
pythonSpider/4zhihuImgs.py at master · Yangzhedi/pythonSpider · GitHub

我的一个小python爬虫库,各种各样的,还在入门中~~不过欢迎star和issue哈~~

GitHub - Yangzhedi/pythonSpider: some python spiders with BeautifulSoup

star我~~我会维护好你们的时间线的~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: