网页爬虫抓取百度图片( 上海海事大学‘发现链接变成第一个项目(组图))
优采云 发布时间: 2021-09-29 03:26网页爬虫抓取百度图片(
上海海事大学‘发现链接变成第一个项目(组图))
爬虫训练项目1_爬行*敏*感*词*
前言
这是我开始学习爬虫时的第一个手工练习项目。在B站看到了一些教学视频,觉得挺有意思的,就决定跟上。
1、找到对方的c位置(确定要爬取的目标)
要抓取网页,首先需要知道网页的 url
首先用浏览器打开贴吧网页。
搜索“上海海事大学”
发现链接变为上海海事大学&fr=search
点击到第二页,再次观察url,发现多了一个pn=50的参数
尝试将pn=50改为pn=0,发现刚才访问的是第一页的内容。
于是找到规则,第一页pn=0,第二页pn=50,
那么第三页应该是pn=100,依此类推
至于另一个参数:ie=utf-8,可以删除
所以,我们需要访问的链接格式是
——&Pn=——
2、发起进攻(发送请求)
上一步我们已经知道要爬取的url
现在你需要发送请求
至于如何发送请求
我们需要安装一个库:请求库
pip 安装请求
然后导入这个库
import requests
然后开始构造url并存入列表
url = 'https://tieba.baidu.com/f?kw={}&pn={}'
text = input("请输入贴吧的名字:")
num = int(input('输入要爬取的页数:'))
url_list = [url.format(text, i * 50) for i in range(num)]
print(url_list)
复制浏览器logo,放在headers中(有的网站会根据浏览器logo判断是否是爬虫,所以加个logo防止一)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}
然后发送请求并保存页面
for item_url in url_list:
response = requests.get(item_url, headers=headers)
file_name = '贴吧_' + text + '第{}页'.format(url_list.index(item_url) + 1) + '.html'
with open(file_name, 'w', encoding='utf-8') as f:
f.write(response.content.decode())
3、 攻击敌方水晶(完整代码)
"""
获取贴吧内容
"""
import requests
url = 'https://tieba.baidu.com/f?kw={}&pn={}'
text = input("请输入贴吧的名字:")
num = int(input('输入要爬取的页数:'))
url_list = [url.format(text, i * 50) for i in range(num)]
print(url_list)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'}
for item_url in url_list:
response = requests.get(item_url, headers=headers)
file_name = '贴吧_' + text + '第{}页'.format(url_list.index(item_url) + 1) + '.html'
with open(file_name, 'w', encoding='utf-8') as f:
f.write(response.content.decode())
然后在pycharm中打开保存的网页并运行
和浏览器搜索到的网页一模一样
胜利
至此,你已经基本完成了学习爬虫的第一步
以后学爬的时候会慢慢更新其他的训练项目