在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python/ python3 BeautifulSoup方面問題

python3 BeautifulSoup方面問題

from collections import Counter
import requests
from bs4 import BeautifulSoup
from urllib import request
import urllib
url = 'http://www.baidu.com.cn/s?wd=' + urllib.parse.quote('BeautifulSoup') + '&pn='  # word為關(guān)鍵詞,pn是百度用來分頁的..
headers = {    
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',    
'Connection': 'keep-alive',       
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'}

r=requests.get(url,headers=headers)
soup = BeautifulSoup(r.text.replace('<b>', '').replace('</b>', ''),'lxml')
print(soup.find(id="3").find('a', 'c-showurl').string)
#for i in range(1, 11):
#    print(soup.find(id=i).find('a', 'c-showurl').string)

問題主要在最后三行,如果find(id="3")就行find(id=i)就報(bào)錯(cuò),請問如何解決?
還有個(gè)問題,就是為何通過python取的搜索結(jié)果與電腦搜索到的結(jié)果不同?

回答
編輯回答
尕筱澄

當(dāng)url為:url = 'https://www.baidu.com.cn/s?wd=' + urllib.parse.quote('python3') + '&pn='
時(shí)獲取結(jié)果為
https://www.python.org/
www.runoob.com/python3...
https://www.liaoxuefeng.com/w...
https://www.python.org/downloads
www.runoob.com/python3...
www.runoob.com/python3...
https://jecvay.com/category/s...
https://www.python.org/downlo...
https://docs.python.org/
https://www.yiibai.com/python...
直接用瀏覽中的url:https://www.baidu.com/s?wd=py...

結(jié)果如下:
https://www.python.org/
www.runoob.com/python3...
https://www.liaoxuefeng.com/w...
www.runoob.com/python3...
https://jecvay.com/category/s...
www.runoob.com/python3...
https://www.python.org/downloads
https://www.python.org/downlo...
https://www.yiibai.com/python...
https://docs.python.org/

本身兩種結(jié)果就不同,然后也都不同于手動(dòng)在瀏覽器查詢的結(jié)果,這是什么原因呢?

實(shí)際結(jié)果如圖
圖片描述

2017年6月6日 21:55
編輯回答
晚風(fēng)眠

第一個(gè)問題,id="3" 是str,id=i是int,當(dāng)然不一樣了,改成id=str(i)
第二個(gè)問題,頁面是不是有js加載的數(shù)據(jù),你是想說要獲取這樣的嗎
圖片描述
如果是這樣你代碼中元素定位就要改一下

2017年7月14日 02:07