我下何从 发表于 2020-6-3 15:40:02

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

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

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

qiuyouzhi 发表于 2020-6-3 15:42:05

有反爬

我下何从 发表于 2020-6-3 15:45:46

qiuyouzhi 发表于 2020-6-3 15:42
有反爬

请问如何解决呢?

qiuyouzhi 发表于 2020-6-3 15:47:54

我下何从 发表于 2020-6-3 15:45
请问如何解决呢?

加headers,你往后面学就知道了

Twilight6 发表于 2020-6-3 15:48:18

我下何从 发表于 2020-6-3 15:45
请问如何解决呢?

代码贴出来看看

v.ki 发表于 2020-6-3 15:54:50

qiuyouzhi 发表于 2020-6-3 15:42
有反爬

怎么就反爬了,这不是编码错误了吗

Twilight6 发表于 2020-6-3 15:54:58

对了55课时下载按正常的代码来已经爬不到想要的了吧因为链接现在 关键词 不是 view 了 而是 item 好像

Twilight6 发表于 2020-6-3 15:55:58

[已解决]055课 爬百度百科“网络爬虫”的词条 问题
https://fishc.com.cn/thread-169631-1-1.html
(出处: 鱼C论坛)

qiuyouzhi 发表于 2020-6-3 15:58:08

v.ki 发表于 2020-6-3 15:54
怎么就反爬了,这不是编码错误了吗

我回复的时候没图片..

我下何从 发表于 2020-6-3 16:04:13

Twilight6 发表于 2020-6-3 15:48
代码贴出来看看

小哥请看看

Twilight6 发表于 2020-6-3 16:05:06

我下何从 发表于 2020-6-3 16:04
小哥请看看

emmm是叫你代码复制给我 哈哈哈

我下何从 发表于 2020-6-3 16:05:07

qiuyouzhi 发表于 2020-6-3 15:58
我回复的时候没图片..

emmm,不好意思哈,没有把问题弄全

我下何从 发表于 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()
      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 = ''.join()
      print(content)

if __name__ == "__main__":
    main()

小甲鱼的铁粉 发表于 2020-6-3 16:12:10

我下何从 发表于 2020-6-3 16:04
小哥请看看

可能是小姐姐呢

我下何从 发表于 2020-6-3 16:12:16

Twilight6 发表于 2020-6-3 16:05
emmm是叫你代码复制给我 哈哈哈

小哥,看你说的那个办法item是可以,但除开文字,其他都是乱码....这咋整

Twilight6 发表于 2020-6-3 16:17:34

我下何从 发表于 2020-6-3 16:12
小哥,看你说的那个办法item是可以,但除开文字,其他都是乱码....这咋整

   html2 = response2.read().decode()这一行这样写即可

我下何从 发表于 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")):
      content = ''.join()
      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 = ''.join()
      print(content)

if __name__ == "__main__":
    main()
不行,还是会,会跟这个head有关吗?

Twilight6 发表于 2020-6-3 16:23:31

我下何从 发表于 2020-6-3 16:20
import urllib.request
import urllib.parse
import re


加错了啊你看清楚我写的是 html2而不是 html

我下何从 发表于 2020-6-3 16:24:25

我下何从 发表于 2020-6-3 16:20
import urllib.request
import urllib.parse
import re


下面html2也加了,还是乱码

我下何从 发表于 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")):
      content = ''.join()
      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 = ''.join()
      print(content)

if __name__ == "__main__":
    main()
页: [1] 2
查看完整版本: 55讲的最后爬虫隐藏入门作业,倒数两题就算是复制粘贴答案都会出错