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))来展示