python中爬虫函数 python爬虫功能

python 爬虫(学了3天写出的代码) import requests import parsel import threading,os import queue
class Thread(threading.Thread): definit (self,queue,path): threading.Thread. init (self) self.queue = queue self.path = path
def download_novel(url, path): res = get_response(url) selctor = parsel.Selector(res) title = selctor.css('.booknameh1::text').get() print(title) content = ' '.join(selctor.css('#content::text').getall()) # 使用join方法改变内容; with open( path + title + ".txt","w",encoding='utf-8') as f: f.write(content) print(title,'保存成功!') f.close()
def get_response(url): # 获得网站源码; response = requests.get(url) response.encoding = 'utf-8' return response.text
ifname== ' main ': # 函数入口 url = str(input('请输入你要下载小说的url:')) response = get_response(url) sel = parsel.Selector(response) novelname = sel.css('#infoh1::text').get() urllist = sel.css('.box_con p dl dd a::attr(href)').getall() queue = queue.Queue() path = './{}/'.format(novelname)
python爬虫---爬取LOL云顶之弈数据本来是想爬取之后作最佳羁绊组合推算python中爬虫函数,但是遇到知识点无法消化(知识图谱),所以暂时先不组合了,实力有限
库python中爬虫函数的安装
1.requests#爬取棋子数据
2.json#棋子数据为js动态,需使用json解析
3.BeautifulSoup
实战前先新建个lol文件夹作为工作目录,并创建子目录data,用于存放数据 。
1.爬取数据,新建个py文件 , 用于爬取云顶数据 , 命名为data.py
1.1定义个req函数,方便读取 。//需设定编码格式,否则会出现乱码
def Re_data(url):
re = requests.get(url)
【python中爬虫函数 python爬虫功能】re.encoding = 'gbk'
data = https://www.04ip.com/post/json.loads(re.text)
return data['data']
1.2定义个Get函数,用于读取数据并使用保存函数进行保存数据,保存格式为json 。
def Get_data():
# 获取数据并保存至data目录
base_url = ''
chess = Re_data(base_url + 'chess.js')
race = Re_data(base_url + 'race.js')
job = Re_data(base_url + 'job.js')
equip = Re_data(base_url + 'equip.js')
Save_data(chess,race,job,equip)
1.3定义save函数实现读取python中爬虫函数的数据进行文件保存 , 保存目录为工作目录下python中爬虫函数的data文件夹 。
def Save_data(t_chess,t_race,t_job,t_equip):
with open('./data/chess.json','w') as f:
json.dump(t_chess,f,indent='\t')
with open('./data/race.json','w') as f:
json.dump(t_race,f,indent='\t')
with open('./data/job.json','w') as f:
json.dump(t_job,f,indent='\t')
with open('./data/equip.json','w') as f:
json.dump(t_equip,f,indent='\t')
1.4定义主函数main跑起来
if __name__ == '__main__':
start = time.time()
Get_data()
print('运行时间python中爬虫函数:' + str(time.time() - start) + '秒')
至此,数据爬取完成 。
2.种族和职业进行组合 。
2.1未完成 //未完成 , 使用穷举方法进行组合会出现内存不够导致组合失败(for循环嵌套导致数组内存超限)
//待学习,使用知识图谱建立组合优选 , 可参考:
期间遇到的问题:
1.爬取棋子数据时为动态js加载 , 需通过json模块的loads方法获取
2.3层for循环嵌套数据量大,导致计算失败,需优化计算方法 。
python爬虫 函数返回值如何调用?在if 里只需要yield "" + item_url.attrs['href']
然后Lsit(最好改可名,在python规范里,函数命名是全小写,而list又是保留字,比如改为display_hrefs)只需要循环输出getUrl的结果就好:
def getUrl(url: str):
....html = urlopen(url)
....for item_url in BeautifulSoup((html.read()).find ('div' , class_='AAA').findAll ("a"):

推荐阅读