学习爬虫第一天,遇到问题求帮助,谢谢大家。

学习爬虫的第一天,我进行了对网页图片的爬虫,但是遇到了一个问题,查阅资料得好像是说,发出请求之后得到的HTML前面没有www,从而导致第二次请求这些没有www的网站出错,具体细节如下图所示,有没有懂得朋友帮忙看一下,蟹蟹啦

import requests

from bs4 import BeautifulSoup
resp = requests.get("http://www.juimg.com/sucai/miao-18710441.html")
resp.encoding = 'utf-8'
# print(resp.text)

main_page=BeautifulSoup(resp.text,"html.parser")
alst = main_page.find("div",attrs={"class":"pageLayout"}).find_all("a",attrs={"class":"worksListPic"})
n = 1
# print(alst)
for a in alst:
    href = a.get("href")
    print(href)
    # resp1 = requests.get(href)
    # resp1.encoding='utf-8'
    # print(resp1.text)
    # child_page = BeautifulSoup(resp1.text,"html.parser")
    # src = child_page.find("div",attrs={"class":"wra"}).find("img").get("src")
    # print(src)
这是直接得到图片超链接所对应网站
/tupian/202109/shenghuoqita_3005738.html
/tupian/202109/shenghuoqita_3002965.html
/tupian/202109/shenghuoqita_3001484.html
/tupian/202109/shenghuoqita_2999886.html
/tupian/202109/shenghuoqita_2999881.html
/tupian/202109/shenghuoqita_2998247.html
/tupian/202109/qitafengguang_2994092.html
/tupian/202109/qitafengguang_2994097.html
/tupian/202109/qitafengguang_2992458.html
/tupian/202108/jiaotonggongju_2989851.html
/tupian/202108/jiaotonggongju_2988147.html
/tupian/202108/shenghuoqita_2984981.html
/tupian/202108/shenghuoqita_2982736.html
/tupian/202108/shenghuoqita_2982619.html
/tupian/202108/shenghuoqita_2982620.html
/tupian/202108/shenghuoqita_2982621.html
/tupian/202106/shenghuorenwu_2960130.html
/tupian/202106/shenghuorenwu_2959743.html
/tupian/202106/shenghuorenwu_2958855.html
/tupian/202106/shenghuorenwu_2956762.html
/tupian/202106/shenghuorenwu_2953540.html
/tupian/202106/shenghuorenwu_2952361.html
/tupian/202106/shenghuorenwu_2939377.html
/tupian/202106/shenghuorenwu_2939040.html
/tupian/202105/shenghuorenwu_2937825.html
/tupian/202105/shenghuorenwu_2935762.html
/tupian/202105/shenghuorenwu_2933613.html
/tupian/202105/shenghuorenwu_2932240.html
/tupian/202105/shenghuorenwu_2931822.html
/tupian/202105/xiandaishangwu_2929953.html
/tupian/202105/shenghuorenwu_2917590.html
/tupian/202105/shenghuorenwu_2911325.html
/tupian/202105/shenghuorenwu_2910381.html
/tupian/202105/shenghuorenwu_2909078.html
/tupian/202105/shenghuorenwu_2908800.html
/tupian/202105/shenghuorenwu_2908762.html
/tupian/202105/shenghuorenwu_2908463.html
/tupian/202105/shenghuorenwu_2908464.html
/tupian/202105/shenghuorenwu_2907920.html
/tupian/202105/shenghuorenwu_2907921.html

Process finished with exit code 0

这是运行结果。
然后第二次请求这些网站就会出错:

import requests

from bs4 import BeautifulSoup
resp = requests.get("http://www.juimg.com/sucai/miao-18710441.html")
resp.encoding = 'utf-8'
# print(resp.text)

main_page=BeautifulSoup(resp.text,"html.parser")
alst = main_page.find("div",attrs={"class":"pageLayout"}).find_all("a",attrs={"class":"worksListPic"})
n = 1
# print(alst)
for a in alst:
    href = a.get("href")
    print(href)
    resp1 = requests.get(href)
    resp1.encoding='utf-8'
    print(resp1.text)
    # child_page = BeautifulSoup(resp1.text,"html.parser")
    # src = child_page.find("div",attrs={"class":"wra"}).find("img").get("src")
    # print(src)

然后错误显示如下:

/tupian/202109/shenghuoqita_3005738.html
Traceback (most recent call last):
  File "C:/Users/24493/PycharmProjects/untitled/venv/爬虫/pic.py", line 15, in <module>
    resp1 = requests.get(href)
  File "C:\Users\24493\PycharmProjects\untitled\venv\lib\site-packages\requests\api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\24493\PycharmProjects\untitled\venv\lib\site-packages\requests\api.py", line 61, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\24493\PycharmProjects\untitled\venv\lib\site-packages\requests\sessions.py", line 515, in request
    prep = self.prepare_request(req)
  File "C:\Users\24493\PycharmProjects\untitled\venv\lib\site-packages\requests\sessions.py", line 453, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "C:\Users\24493\PycharmProjects\untitled\venv\lib\site-packages\requests\models.py", line 318, in prepare
    self.prepare_url(url, params)
  File "C:\Users\24493\PycharmProjects\untitled\venv\lib\site-packages\requests\models.py", line 392, in prepare_url
    raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '/tupian/202109/shenghuoqita_3005738.html': No scheme supplied. Perhaps you meant http:///tupian/202109/shenghuoqita_3005738.html?

Process finished with exit code 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是一个详细的实训爬虫时可能遇到问题: 在实训爬虫中,可能会遇到多种问题。其中,最常见的问题是反爬虫措施。目标网站为了防止爬虫程序爬取数据,通常会设置反爬虫措施,如限制 IP 访问频率、验证码、JS 加密等。 为了规避这些反爬虫措施,需要使用技术手段。例如,可以通过设置 User-Agent 来模拟不同的浏览器访问目标网站,以规避网站的反爬虫检测。同时,也可以使用代理 IP 来隐藏真实 IP 地址,以免被网站封禁。 另一个常见的问题是数据清洗。爬取到的数据可能存在格式不规范、重复、缺失等问题,需要进行数据清洗和去重。数据清洗的过程,包括数据格式的统一、数据的去重、数据的筛选等。 此外,在爬虫过程中也可能遇到网络异常的问题。网络波动、超时、断开等问题会影响爬虫程序的正常运行,需要设置重试机制和异常处理机制,保证程序的稳定性和健壮性。 还有一个常见的问题是动态页面。随着 Web 技术的不断发展,越来越多的网站使用了 JavaScript 技术来生成页面内容。在这种情况下,需要使用 Selenium 或者其他的动态页面爬取技术来爬取数据。 最后,目标网站也可能会检测爬虫程序的特征,如 User-Agent、Cookie 等。为了规避检测,需要使用相应的技术手段,如设置随机的 User-Agent、动态生成 Cookie 等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值