python 爬取名字分数

爬取名字分数
代码展示: print 打印的方式:
【python 爬取名字分数】打印变量的两种方法一种是变量连着打印,用 %s, 一种是直接打印:

python 爬取名字分数

文章插图
结果输出:
python 爬取名字分数

文章插图
下面是给 名字批量打分数的例子,主要用到 bs4,两个模块进行数据的访问和解析;
需要熟悉的内容有:
get() 函数: 函数解析: 其中包含函数的使用;文件的读取和写入,用 open 函数html 网页的查看方法
from urllib.parse import urlencodeimport requestsfrom bs4 import BeautifulSoupurl = "https://life.httpcn.com/xingming.asp"def get_score(xing, ming):data = http://www.kingceram.com/post/{"isbz" : 1,"xing" : xing.encode("gb2312"),"ming": ming.encode("gb2312"),"sex": 1,"data_type": 0,"year": 1980,"month": 9,"day": 16,"hour": 15,"minute": 10,"pid":"湖北省".encode("gb2312"),"cid": "武汉".encode("gb2312"),"wxxy": 0,"xishen": "木".encode("gb2312"),"yongshen": "木".encode("gb2312"),"check_agree": "agree","act": "submit"}headers = {"Content-Type": "application/x-www-form-urlencoded"}r = requests.get(url, data=http://www.kingceram.com/post/urlencode(data), headers=headers)print(r.status_code)r.encoding ="gb2312"#print(r.text)soup = BeautifulSoup(r.text, "html.parser")divs = soup.find_all("div", class_="chaxun_b")bazi, wuge = 0, 0for div in divs:if "姓名五格评分" not in div.get_text():continue#print(div)fonts = div.find_all("font")bazi = fonts[0].get_text().replace("分", "").strip()wuge = fonts[1].get_text().replace("分", "").strip()return "%s%s"%(xing, ming), bazi, wugewith open("input.txt") as fin, open("output.txt", "w") as fout:for line in fin:line = line.strip()xingming, bazi, wuge = get_score("吴", line)fout.write("%s\t%s\t%s\n"%(xingming, bazi, wuge))