这两天接触了一下python爬虫,根据网上的一些博客写了下面的代码来抓取网上的数据,记录一下。
#from bs4 import BeautifulSoup #解析html或xml文件的库
import urllib.request
import csv
import re
import json
csv_file = open("rent.csv","w",encoding='utf-8')
csv_writer = csv.writer(csv_file, delimiter=',')
class Spider:
def loadPage(self):
# url 是想爬取的网站
url = "xxx"
#user-Agent头
user_agent="Mozilla/5.0 (compatible; MSIE 9.0; Windows NT6.1; Trident/5.0"
headers = {"User-Agent":user_agent}
req = urllib.request.Request(url,headers = headers)
response = urllib.request.urlopen(req)
html =str(response.read(),'utf-8')
#根据html,找到自己所需的信息,再根据正则表达式进行匹配
#re.S 如果没有re.S,则是只匹配一行有没有符合规则的字符串,如果没有则匹配下一行重新匹配
#如果加上re.S,则是将所有的字符串按一个整体进行匹配
pattern = re.compile(r'这里填入正则表达式',re.S)
item_list = pattern.findall(html)#获取数据,为一个数组
for data in item_list:
dictinfo = json.loads(data)
csv_writer.writerow([dictinfo["title"],dictinfo["address"],dictinfo["avgScore"],dictinfo["avgPrice"]]) #根据获取到的实际数据,写入文件
if __name__ == "__main__":
mySpider = Spider()
mySpider.loadPage()
csv_file.close()