爬虫主要包括三部分:
1、获取url
2、解析url中的内容,并爬取想要的内容
3、保存内容
获取url
可以直接复制想要抓取的网址,如果网页存在分页的情况,可以用for循环,如:
for i in range(0,1):
url = baseurl + str(i*25)
baseurl就是基础网址,通过for循环实现多页的抓取。
解析url
解析可以用requests库
基础实例
1、get请求:
r = requests.get('https://api.github.com/events')
print(r.text)
#当需要获取图片,视频,音频等文件时,需要获取的内容为二进制流,此时不能用response.text,而是response.content
定制请求头#就是把爬虫伪装成浏览器
url = 'https://api.github.com/some/endpoint'
headers = {'user-agent': 'my-app/0.0.1'}
r = requests.get(url, headers=headers)
2、post请求
在request库中进行post请求只需要用字典把data或者headers用字典封装起来放入参数内就可以。post的用法和get一摸一样,只需要把方法名改成requests.post即可。
post实例:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
print(r.text)
爬取内容
可以用bs4中的Beautifulsoup库,也可用parsel库,re正则表达式的库也行。
目前我用的是parsel库,实例:
通过css获得所有li标签下的内容
保存内容