0
点赞
收藏
分享

微信扫一扫

Python自学第五天:一级页面换页+二级页面获取内容,并入Excel(实例代码)

西风白羽 2022-02-09 阅读 27

import requests
from lxml import etree
import xlwt

为了方便翻页将网址代码分成两部分

urlstart = ‘http://www.hubeibidding.com/list/33.html?page=’

二级页面网址代码分成两部分

urlfirst = ‘http://www.hubeibidding.com’

#创建一个workbook设置编码
workbook = xlwt.Workbook(encoding = ‘UTF-8’)
#创建一个worksheet
worksheet = workbook.add_sheet(‘hubeichengtao’)

#定义个空list,用来储存内容
row = []

爬取数据总页数170,本次只到10页

for n in range(2, 11):
# 组合页面URL,用来翻页
URL = urlstart + str(n)
# 获取页面
headers = {‘User-Agent’: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36’}
res = requests.get(URL,headers = headers)

#设置内容配置
res.encoding = 'UTF-8'
html = res.content.decode('UTF-8')  
e_html = etree.HTML(html)


#定位获取超链接
urlend = e_html.xpath(' //div[@class="dynamic_content_center"]/a/@href')

#组合超链接
for x in urlend:
url2 = urlfirst+x
print(url2)
#设置获取的网页内容配置
res2 = requests.get(url2,headers = headers)

  #设置获取的网页内容配置
  res2.encoding = 'UTF-8'
  html2 = res2.content.decode('UTF-8')  
  e_html2 = etree.HTML(html2)
 
  #点位获取内容
  cont14 = e_html2.xpath(' //div[@class="news_details_content"]/div/table/tbody/tr[14]/td/text()')
 #获取内容,插入list
  row.append(cont14)
  #点位获取内容
  cont15 = e_html2.xpath(' //div[@class="news_details_content"]/div/table/tbody/tr[15]/td/text()')
  #获取内容,插入list
  row.append(cont15)
  #点位获取内容 
  cont16 = e_html2.xpath(' //div[@class="news_details_content"]/div/table/tbody/tr[16]/td/text()')
  #获取内容,插入list
  row.append(cont16)
  #点位获取内容 
  cont17 = e_html2.xpath(' //div[@class="news_details_content"]/div/table/tbody/tr[17]/td/text()')
  #获取内容,插入list
  row.append(cont17)

#把list row写进Excel
#定义行数
i = 1
for j in range(len(row)):
t = j%4
#换行判断
if t == 0 :
i = i+1
#worksheet.write(行数,列数,内容)
worksheet.write(i,t,row[j])

#保存
workbook.save(‘Desktop/市场拓展/hubeict_test.xls’)
print(“ok”)

注意事项:
一、代码复制后,需要把中文的‘’改为英文格式
二、注意代码对齐

其他技巧:
1、目标网页path获取:每一个目标都要定位
在这里插入图片描述
2、for in
for in 说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等。
3、目标网页格式
在这里插入图片描述
4、注意str和list的区别
可使用print(type(obj))来展示

举报

相关推荐

0 条评论