网页爬虫抓取百度图片( 上海海事大学‘发现链接变成第一个项目(组图))

优采云 发布时间: 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中打开保存的网页并运行

  

  

  和浏览器搜索到的网页一模一样

  胜利

  至此,你已经基本完成了学习爬虫的第一步

  以后学爬的时候会慢慢更新其他的训练项目

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线