马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码的作用是可以通过输入的关键字,在百度百科检索相应的内容import urllib.request
import urllib.parse
import re
from bs4 import BeautifulSoup
def main():
keyword = input("请输入关键词:")
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(href=re.compile("view")):
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.h2:
content = ''.join([content, soup2.h2.text])
content = ''.join([content, " -> ", url2])
print(content)
if __name__ == "__main__":
main()
复制代码
上面代码中的这小段代码不是很理解 keyword = input("请输入关键词:")
keyword = urllib.parse.urlencode({"word":keyword})
response = urllib.request.urlopen("http://baike.baidu.com/search/word?%s" % keyword)
这里很显然把输入的关键字,赋予了keyword变量,然后将变量做为值放到了一个字典里key为'word'
问题1:为什么key是’word‘,这是有意的,还是随意什么名字都可以?
问题2:怎么就知道'word'的值,在发送的请求里是,搜索栏中的值?百度百科界面,只有一个搜索框,如果某个页面有多个输入可以输入值的框,将如何区发送的请求信息里哪个值是要放到哪一个输入框中?
问题3:keyword转格式后,为什么要加到链接中去?
问题1:为什么key是’word‘,这是有意的,还是随意什么名字都可以?
认真观察下 URL ,换多个关键词搜索时候 就 word = xxx 后面的 xxx 进行了改变,所以我们这里用 word ,现在的百度好像也省略了 直接写 wd = xxx 了,xxx 就是你搜索的关键字
问题2:怎么就知道'word'的值,在发送的请求里是,搜索栏中的值?百度百科界面,只有一个搜索框,如果某个页面有多个输入可以输入值的框,将如何区发送的请求信息里哪个值是要放到哪一个输入框中?
问题3:keyword转格式后,为什么要加到链接中去?
同上个问题,多多观察 URL ,后面问题感觉是偏 web 了
|