【问题标题】:Searching on a website在网站上搜索
【发布时间】:2017-08-04 17:29:30
【问题描述】:

我正在尝试访问该网站并将“python 课程”发布到搜索中。没有错误,我可以访问该网站,但我唯一能得到的是主页。似乎我无法将“python course”这个词放入搜索中,我不知道为什么。谢谢你的帮助

import urllib.request
import urllib.parse

url = "https://wwww.pythonprogramming.net/search"
values = {'q':'python course'}
data = urllib.parse.urlencode(values) 
data = data.encode('UTF-8')
req = urllib.request.Request(url, data)
resp = urllib.request.urlopen(req)
repData = resp.read()
print(repData)

编辑: 正如我所说,我访问该网站没有问题。但如果你真的去网站并在搜索栏中手动输入“python course”,你会得到与使用 python 不同的结果。通过python,打印功能只为我打印主页,但没有我正在搜索的东西(单词、短语)的迹象。但是,如果你更改代码中的 url 变量并搜索“pythonprogramming.net/search/?q=python+course,你会得到你想要的

【问题讨论】:

  • 你得到什么样的错误?
  • @thaavik:问题的第二句话说没有错误,所以再问也没有意义。

标签: python searchbar


【解决方案1】:

问题是你有四个w:wwww 改为:

import urllib.request
import urllib.parse

url = "https://www.pythonprogramming.net/search/"
values = {'q':'python course'}
data = urllib.parse.urlencode(values)
data = data.encode('UTF-8')
req = urllib.request.Request(url, data)
resp = urllib.request.urlopen(req)
repData = resp.read()
print(repData)

【讨论】:

  • 正如我所说,我访问该网站没有问题。但如果你真的去网站并在搜索栏中手动输入“python course”,你会得到与使用 python 不同的结果。通过python,打印功能只为我打印主页,但没有我正在搜索的东西(单词、短语)的迹象。但是,如果您更改代码中的 url 变量并搜索“pythonprogramming.net/search/?q=python+course”,您将得到您想要的。
  • 你有 https:// www .pythonprogramming.net/search/" urllib 不会解析这个子域。也许你的浏览器会知道你的意思是 www 并改变这是给你的。对我来说,它告诉我有一个无效的 SSL 证书(因为他们可能没有映射 wwww 子域)所以这就是我在你的代码中发现问题的方式。
【解决方案2】:

唯一真正的问题是您的网址中有太多w。如果你没有绑定到 urllib,我建议使用requests。相同的输出,更少的代码。

import requests

payload = {'q': 'python course'}
request = requests.get('https://www.pythonprogramming.net/search', params=payload)
print(request.text)

【讨论】:

  • 这最终帮助我获得了我想要的搜索结果。谢谢
  • @Tom-as 如果您需要从源头获取某些信息,请使用 BeautifulSoup。很高兴有帮助,请考虑接受答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 2010-11-18
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多