日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python3--baby网的数据爬取

發(fā)布時(shí)間:2025/4/5 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3--baby网的数据爬取 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

上代碼:

''' 本代碼用來(lái)爬取https://www.babyment.com/yingwenming/kaitou.php?start_letter=A&page=1的信息 '''import requests,csv,time,random from bs4 import BeautifulSoup from fake_useragent import UserAgent#獲取ip列表 def get_ip_list(): f=open('IP.txt','r') ip_list=f.readlines() f.close() return ip_list #從IP列表中獲取隨機(jī)IP def get_random_ip(ip_list): proxy_ip = random.choice(ip_list) proxy_ip=proxy_ip.strip('\n') proxies = {'http': proxy_ip} return proxies #功能:將信息寫(xiě)入文件 def write_file(filePath,row): with open(filePath,'a+',encoding='utf-8',newline='') as csvfile: spanreader = csv.writer(csvfile,delimiter='|',quoting=csv.QUOTE_MINIMAL) spanreader.writerow(row) #解析baby網(wǎng) def get_EnNames_list(url,ip_list):print('輸入進(jìn)來(lái)的url為:{}'.format(url))#獲取隨機(jī)IP,headers防止ip被封headers = {'User-Agent':str(UserAgent().random)}proxies = get_random_ip(ip_list)try:req = requests.get(url=url,headers=headers,proxies=proxies,timeout=10)except:print('運(yùn)行出錯(cuò)10秒后重新運(yùn)行')time.sleep(10)headers = {'User-Agent':str(UserAgent().random)}proxies = get_random_ip(ip_list)req = requests.get(url=url,headers=headers,proxies=proxies,timeout=10)#在利用find_all()注意要準(zhǔn)確定位soup = BeautifulSoup(req.text,'lxml')content = soup.find('table',class_='table')content = content.find('tbody')content = content.find_all('tr')name = []#列表中沒(méi)有find_all()方法,故需要利用for語(yǔ)句for each in content:name.append(each.find_all('b')[0].get_text())return name#獲取baby網(wǎng)中所有的的英文名 def get_EnNames(letter,ip_list):for number in range(1,100):url = 'https://www.babyment.com/yingwenming/kaitou.php?start_letter={}&page={}'.format(letter,number)#一個(gè)網(wǎng)頁(yè)一個(gè)網(wǎng)頁(yè)的獲取我們需要的英文名name = get_EnNames_list(url,ip_list)#當(dāng)page遇到最大值時(shí),name就會(huì)為空,我們利用這一點(diǎn)進(jìn)行切換,進(jìn)入下一個(gè)字母的爬取if not name:print('{}開(kāi)頭的英文名共{}個(gè)'.format(letter,number-1))breakfor each in name:#將一個(gè)列表分為多個(gè)列表,從而實(shí)現(xiàn)換行a=[]a.append(each)write_file('A-Z.csv',a)if __name__ == "__main__":ip_list = get_ip_list()for letter in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':get_EnNames(letter,ip_list)

總結(jié)

以上是生活随笔為你收集整理的Python3--baby网的数据爬取的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。