【发布时间】:2020-09-15 20:30:14
【问题描述】:
我正在迭代这个网站并尝试抓取新闻文章的链接。 https://www.usnews.com/search?q=China%20COVID-19#gsc.tab=0&gsc.q=China%20COVID-19&gsc.page=1
首先,我需要获取页面的链接,所以我使用了这段代码:
def scrape(url):
user_agent = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko'}
request = 0
params = {
'q': 'China%20COVID-19',
'gsc.tab': '0',
'gsc.q': 'China%20COVID-19',
}
pagelinks = []
myarticle = []
for page_no in range(1,3):
try:# to avoid "No connection adapters were found for" error
params['gsc.page'] = page_no
response = requests.get(url=url,
headers=user_agent,
params=params)
print(response.request.url)
except Exception as e:
print(e)
scrape('https://www.usnews.com/search/')
但是,结果不正确:
https://www.usnews.com/search?q=China%252520COVID-19&gsc.tab=0&gsc.q=China%252520COVID-19&gsc.page=1
https://www.usnews.com/search?q=China%252520COVID-19&gsc.tab=0&gsc.q=China%252520COVID-19&gsc.page=2
预期的结果应该是这样的:
https://www.usnews.com/search?q=China%20COVID-19#gsc.tab=0&gsc.q=China%20COVID-19&gsc.page=1
https://www.usnews.com/search?q=China%20COVID-19#gsc.tab=0&gsc.q=China%20COVID-19&gsc.page=2
有人可以帮我解决这个错误吗?非常感谢!
【问题讨论】:
-
我对@987654326@一无所知,但您的参数是否应该未编码:
'q': 'China COVID-19'即实际空间而不是编码为%20的空间?
标签: python web-scraping beautifulsoup parameters request