鱼C论坛

 找回密码
 立即注册
查看: 757|回复: 5

请教BeautifulSoup这章的问题

[复制链接]
发表于 2019-3-13 18:52:55 | 显示全部楼层 |阅读模式

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

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

x
#把百度百科里 搜索 猪八戒,检测其是否有府标题,如有,将副标题也一并打印出来
import urllib.request
import urllib.parse
import re
from bs4 import BeautifulSoup

def main():
    keyword='猪八戒'
    keyword=urllib.parse.urlencode({"word":keyword})
    response=\                                                                                            # 请问,这句的格式为什么写成这样。\ 换行     \换行
urllib.request.urlopen("http://baike.baidu.com/search/word? %s"%\
keyword)
    html=response.read()
    soup=BeautifulSoup(html,"html.parser")
   
    for each in soup.find_all(h=re.compile("view")):
        content=''.join([each.text])
        url2="".join(["http://baike.baidu.com",each["href"]])
        response2= urllib.request.urlopen(rul2)
        html2=response2.read()
        soup2=BeautifulSoup(htm2,"html.parser")
        if soup2.h2:
            content=''.join([content,soup2.h2.text])
        content=''.join([content,"_>",url2])
        print(content)
        
main()
运行后,请问错在哪里?
RESTART: C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/my programe/beautifulsoup3.py
Traceback (most recent call last):
  File "C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/my programe/beautifulsoup3.py", line 26, in <module>
    main()
  File "C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/my programe/beautifulsoup3.py", line 11, in main
    keyword)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, in open
    response = meth(req, response)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 642, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 570, in error
    return self._call_chain(*args)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 650, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
>>>
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-13 19:04:06 | 显示全部楼层
请求错误。返回状态码为400
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-13 19:24:51 | 显示全部楼层
_谪仙 发表于 2019-3-13 19:04
请求错误。返回状态码为400

response=\                                                                                            
urllib.request.urlopen("http://baike.baidu.com/search/word? %s"%\
keyword)
# 请问,这句的格式为什么写成这样。\ 换行     \换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-13 20:01:56 | 显示全部楼层
chenjl1972 发表于 2019-3-13 19:24
response=\                                                                                         ...

你可以不换行啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-3-13 20:13:51 | 显示全部楼层

response=urllib.request.urlopen("http://baike.baidu.com/search/word? %s"%\
keyword)

  >>> ("http://baike.baidu.com/search/word? %s"%\
'keyword')
            
'http://baike.baidu.com/search/word? keyword'  
请问,这个反斜杠是起什么作用呢?                                                                                
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-13 20:34:12 | 显示全部楼层
chenjl1972 发表于 2019-3-13 20:13
response=urllib.request.urlopen("http://baike.baidu.com/search/word? %s"%\
keyword)

继续上一行的字符串,连接作用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-14 14:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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