単純な要求を送信します。
ヘッダで要求を送信します。
パラメータを指定してリクエストを送信します。
例としては、次のとおりです:
インポート要求の
ヘッダ= { "ユーザエージェント"の"Mozilla / 5.0(のWindows NT 6.1、Win64の、のx64)のAppleWebKit / 537.36"
"(ヤモリ様KHTML)クローム/ 77.0.3865.120サファリ/ 537.36"}
P = { 'HHS 「100}
URL = 'http://www.baidu.com'
応答= requests.get(URL、ヘッダー=ヘッダ、paramsは= P)
プリント(response.status_code)
プリント(response.request.url)
実際の戦闘(爬虫類が貼り付け):
インポート要求
クラスTiebaSpider:
#コンストラクタは、あなたは、クエリにしたいとの問い合わせプロパティnum個のページの前に貼り付け名を渡すことの必要性の背後にあるメソッドを定義します
プレイ__init __(自己、tieba_name、tieba_num):
self.tieba_num = tieba_num
self.tieba_name = tieba_name
#以下は、キロワット名はそれに接続され、アクセスする形式のURLでPNは、ページ数で表され、それはホームのpn = 0、最初の50ページ、2ページ目100などを調査する投稿しました
self.url_temp = "https://tieba.baidu.com/f?kw=" + tieba_name + "&ie=utf-8&pn={}"
#模仿网页访问贴吧
self.headers = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"}
#获取url列表
def get_urlList(self):
url_list = []
for i in range(self.tieba_num):
url_list.append(self.url_temp.format(i * 50))
return url_list
#访问网页,解析网页,返回
def parse_url(self,url):
response = requests.get(url,headers=self.headers)
return response.text #或者response.content.decode('utf-8')
#保存网页
def save_html(self,html_str,page_num):
file_path = "{}-第{}页.html".format(self.tieba_name,page_num)
with open(file_path,'w',encoding='utf-8') as f:
f.write(html_str)
def run(self):
url_list = self.get_urlList()
for url in url_list:
html_str = self.parse_url(url) #保存的内容
page_num = url_list.index(url) + 1 #文件的页码
self.save_html(html_str,page_num)
def main():
tieba_name = input('请输入想查询的贴吧名:')
tieba_num = int(input('请输入想要查询前几页:'))
tieba = TiebaSpider(tieba_name, tieba_num)
tieba.run()
if __name__ == '__main__':
main()