鱼C论坛

 找回密码
 立即注册
查看: 2118|回复: 21

55讲的最后爬虫隐藏入门作业,倒数两题就算是复制粘贴答案都会出错

[复制链接]
发表于 2020-6-3 15:40:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 我下何从 于 2020-6-3 15:44 编辑

55讲的最后爬虫隐藏入门作业,倒数两题就算是复制粘贴答案都会出错,大佬求解答
捕获1.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 15:42:05 | 显示全部楼层
有反爬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 15:45:46 | 显示全部楼层

请问如何解决呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 15:47:54 | 显示全部楼层
我下何从 发表于 2020-6-3 15:45
请问如何解决呢?

加headers,你往后面学就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 15:48:18 | 显示全部楼层
我下何从 发表于 2020-6-3 15:45
请问如何解决呢?

代码贴出来看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 15:54:50 | 显示全部楼层

怎么就反爬了,这不是编码错误了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 15:54:58 | 显示全部楼层
对了  55课时下载按正常的代码来已经爬不到想要的了吧  因为链接现在 关键词 不是 view 了 而是 item 好像
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 15:55:58 | 显示全部楼层
[已解决]055课 爬百度百科“网络爬虫”的词条 问题
https://fishc.com.cn/thread-169631-1-1.html
(出处: 鱼C论坛)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 15:58:08 | 显示全部楼层
v.ki 发表于 2020-6-3 15:54
怎么就反爬了,这不是编码错误了吗

我回复的时候没图片..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 16:04:13 | 显示全部楼层

小哥请看看

小哥,隐藏了也是有问题

小哥,隐藏了也是有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 16:05:06 | 显示全部楼层

emmm  是叫你代码复制给我 哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 16:05:07 | 显示全部楼层
qiuyouzhi 发表于 2020-6-3 15:58
我回复的时候没图片..

emmm,不好意思哈,没有把问题弄全
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 16:06:48 | 显示全部楼层
Twilight6 发表于 2020-6-3 16:05
emmm  是叫你代码复制给我 哈哈哈

import urllib.request
import urllib.parse
import re
from bs4 import BeautifulSoup

def main():
    keyword = input("请输入关键词:")
    keyword = urllib.parse.urlencode({"word":keyword})
    url="http://baike.baidu.com/search/word?%s" % keyword
    req=urllib.request.Request(url)
    req.add_header('Use-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0')
    response=urllib.request.urlopen(req)
    html = response.read()
    soup = BeautifulSoup(html, "html.parser")

    for each in soup.find_all(href=re.compile("item")):
        content = ''.join([each.text])
        url2 = ''.join(["http://baike.baidu.com", each["href"]])
        response2 = urllib.request.urlopen(url2)
        html2 = response2.read()
        soup2 = BeautifulSoup(html2, "html.parser")
        if soup2.h3:
            content = ''.join([content, soup2.h2.text])
        content = ''.join([content, " -> ", url2])
        print(content)

if __name__ == "__main__":
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 16:12:10 | 显示全部楼层

可能是小姐姐呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 16:12:16 | 显示全部楼层
Twilight6 发表于 2020-6-3 16:05
emmm  是叫你代码复制给我 哈哈哈

小哥,看你说的那个办法item[7:]是可以,但除开文字,其他都是乱码....这咋整
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 16:17:34 | 显示全部楼层
我下何从 发表于 2020-6-3 16:12
小哥,看你说的那个办法item[7:]是可以,但除开文字,其他都是乱码....这咋整

     html2 = response2.read().decode()这一行这样写即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 16:20:53 | 显示全部楼层
Twilight6 发表于 2020-6-3 16:17
html2 = response2.read().decode()这一行这样写即可

import urllib.request
import urllib.parse
import re
from bs4 import BeautifulSoup

def main():
    keyword = input("请输入关键词:")
    keyword = urllib.parse.urlencode({"word":keyword})
    url="http://baike.baidu.com/search/word?%s" % keyword
    req=urllib.request.Request(url)
    req.add_header('Use-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0')
    response=urllib.request.urlopen(req)
    html = response.read().decode()
    soup = BeautifulSoup(html, "html.parser")

    for each in soup.find_all(href=re.compile("item"))[7:]:
        content = ''.join([each.text])
        url2 = ''.join(["http://baike.baidu.com", each["href"]])
        response2 = urllib.request.urlopen(url2)
        html2 = response2.read()
        soup2 = BeautifulSoup(html2, "html.parser")
        if soup2.h3:
            content = ''.join([content, soup2.h2.text])
        content = ''.join([content, " -> ", url2])
        print(content)

if __name__ == "__main__":
    main()
不行,还是会,会跟这个head有关吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 16:23:31 | 显示全部楼层
我下何从 发表于 2020-6-3 16:20
import urllib.request
import urllib.parse
import re

加错了啊  你看清楚我写的是 html2  而不是 html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 16:24:25 | 显示全部楼层
我下何从 发表于 2020-6-3 16:20
import urllib.request
import urllib.parse
import re

下面html2也加了,还是乱码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-3 16:27:17 | 显示全部楼层
我下何从 发表于 2020-6-3 16:24
下面html2也加了,还是乱码

import urllib.request
import urllib.parse
import re
from bs4 import BeautifulSoup

def main():
    keyword = input("请输入关键词:")
    keyword = urllib.parse.urlencode({"word":keyword})
    url="http://baike.baidu.com/search/word?%s" % keyword
    req=urllib.request.Request(url)
    req.add_header('Use-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0')
    response=urllib.request.urlopen(req)
    html = response.read()
    soup = BeautifulSoup(html, "html.parser")

    for each in soup.find_all(href=re.compile("item"))[7:]:
        content = ''.join([each.text])
        url2 = ''.join(["http://baike.baidu.com", each["href"]])
        response2 = urllib.request.urlopen(url2)
        html2 = response2.read().decode()
        soup2 = BeautifulSoup(html2, "html.parser")
        if soup2.h3:
            content = ''.join([content, soup2.h2.text])
        content = ''.join([content, " -> ", url2])
        print(content)

if __name__ == "__main__":
    main()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-28 14:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表