700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Request爬取网站(seo.chinaz.com)百度权重的查询结果

Request爬取网站(seo.chinaz.com)百度权重的查询结果

时间:2023-06-21 07:45:10

相关推荐

Request爬取网站(seo.chinaz.com)百度权重的查询结果

一:脚本需求

利用Python3查询网站权重并自动存储在本地数据库(Mysql数据库)中,同时导出一份网站权重查询结果的EXCEL表格

数据库类型:MySql

数据库表单名称:website_weight

表单内容及表头设置:表头包含有id、main_url(即要查询的网站)、website_weight(网站权重)

要查询的网站:EXCEL表格

二:需求实现

一:利用openpyxl模块解析excel文件,将查询的网站读取到一个列表中保存

# 解析excel文件,取出所有的urldef get_urls(file_path):wb = load_workbook(file_path)sheet = wb.activeurls = []for cell in list(sheet.columns)[1]:if cell != sheet['B1']:urls.append(cell.value)return wb, urls

二:分析请求发送,伪造请求,取得HTML页面

# 伪造请求,取得html页面def get_html(url):# 定义http的请求Headerheaders = {} # random.randint(1,99) 为了生成1到99之间的随机数,让UserAgent变的不同。 headers['User-Agent'] = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537." + str(random.randint(1, 99))# Referer地址使用待查询的网址headers['Referer'] = "/" + url + "/"html = ''try:html = requests.get("/" + url + "/", headers=headers, timeout=5).textexcept Exception:passreturn html

三:分析HTML页面,利用BeautifulSoup模块提取数据

# 利用BeautifulSoup模块从html页面中提取数据def get_data(html, url):if not html:return url, 0soup = bs(html, "lxml")p_tag = soup.select("p.ReLImgCenter")[0]src = p_tag.img.attrs["src"]regexp = pile(r'^http:.*?(\d).gif')br = regexp.findall(src)[0]return url, br

四:数据库连接配置,并获取游标

# 连接数据库def get_connect():conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',passwd='root',db='seotest',charset="utf8")# 获取游标对象cursor = conn.cursor()return conn, cursor

五:主程序逻辑编写

if __name__ == "__main__":#命令行执行脚本文件,获取excel文件路径file_path = sys.argv[1]#获取URL列表和excle工作簿wb, urls = get_urls(file_path)#获取数据库连接和游标conn, cursor = get_connect()#获取工作簿当前工作sheetsheet = wb.active#数据库插入语句sql_insert = '''insert into website_weight(main_url, website_weight) values (%s, %s)'''for row, url in enumerate(urls):if not url: continuehtml = get_html(url)data = get_data(html, url)# 插入数据到数据库 cursor.execute(sql_insert, data)# 插入数据到Excel表中cell = sheet.cell(row=row + 2, column=3)cell.value = data[1]# 终端打印插入的数据print(data)mit()conn.close()wb.save(file_path)wb.close()# cmd命令:python3 F:\算法与结构\网站权重.py F:\website.xlsx

三:脚本运行及其实现结果

CMD执行

数据库:

excel文件写入:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。