Python url lib.open()可以';不能处理带有#的字符串吗?

Python url lib.open()可以';不能处理带有#的字符串吗?,python,string,web-scraping,beautifulsoup,urllib,Python,String,Web Scraping,Beautifulsoup,Urllib,我在做一个小项目,一个网站刮板,我遇到了一个问题,我想是urllib.open()。所以,让我们假设我想刮谷歌的主页,一个连接查询,然后一个搜索查询。(我并不是真的想从谷歌那里捞点什么,但我想他们很容易在网上展示。) 这将打印出: 1 一大堆从谷歌刮来的乱七八糟的代码 2 3 这让我相信#符号可能会阻止url打开? 连接的字符串不会为连接抛出任何错误,但仍然不会在中读取任何内容 有人知道为什么会这样吗?我从没想过字符串中的a会对代码产生任何影响。我想这对我来说是个愚蠢的错误,但如果是的话,我看不

我在做一个小项目,一个网站刮板,我遇到了一个问题,我想是
urllib.open()
。所以,让我们假设我想刮谷歌的主页,一个连接查询,然后一个搜索查询。(我并不是真的想从谷歌那里捞点什么,但我想他们很容易在网上展示。)

这将打印出:

1

一大堆从谷歌刮来的乱七八糟的代码

2

3

这让我相信#符号可能会阻止url打开? 连接的字符串不会为连接抛出任何错误,但仍然不会在中读取任何内容

有人知道为什么会这样吗?我从没想过字符串中的a会对代码产生任何影响。我想这对我来说是个愚蠢的错误,但如果是的话,我看不出来


谢谢

浏览器不应该将url片段部分(以“#”)发送到服务器

:请注意,片段标识符(及其前面的“#”)是 不被视为URL的一部分。但是,由于它是常用的 在与URL相同的字符串上下文中,解析器必须能够 当碎片存在时识别它,并将其放在一边作为测试的一部分 解析过程

您可以在浏览器中获得正确的结果,因为浏览器向发送请求,url片段由javascript检测(这与拼写检查类似,大多数网站不会这样做),浏览器然后发送新的ajax请求(),最后使用获得的json数据呈现页面。urllib无法为您执行javascript


要解决问题,只需更换
https://www.google.com/#q=Kerbal 太空计划
with
https://www.google.com/?q=Kerbal 太空计划

a
404
正在从
返回状态代码https://www.google.com/#q=Kerbal 太空计划“
谢谢!正是我想要的。
from bs4 import BeautifulSoup
import urllib

url = urllib.urlopen("https://www.google.com/")

soup = BeautifulSoup(url)

parseList1=[]

for i in soup.stripped_strings:
    parseList1.append(i)

parseList1 = list(parseList1[10:15])

#Second URL

url2 = urllib.urlopen("https://www.google.com/"+"#q=Kerbal Space Program")

soup2 = BeautifulSoup(url2)

parseList2=[]

for i in soup2.stripped_strings:
    parseList2.append(i)

parseList2 = list(parseList2[10:15])

#Third URL

url3 = urllib.urlopen("https://www.google.com/#q=Kerbal Space Program")

soup3 = BeautifulSoup(url3)

parseList3=[]

for i in soup3.stripped_strings:
    parseList3.append(i)

parseList3 = list(parseList3[10:15])

print " 1 "

for i in parseList1:
    print i

print " 2 "

for i in parseList2:
    print i

print " 3 "

for i in parseList3:
    print i